1 Önsöz

Bu çalışma, kaggle’dan alınan Pregnancy(*) adlı, Kaiser Foundation Sağlık Planı’na kayıtlı olan ve San Francisco Doğu Körfez bölgesinde bulunan kadınların 1960 ile 1967 yılları arasındaki gebelikleri ile ilgili özellikleri incelemek amacıyla R programlama kullanılarak hazırlanmıştır. Veri seti 8 değişken ve 1236 gözlemden oluşmaktadır.

(*) https://www.kaggle.com/datasets/debjeetdas/babies-birth-weight

2 Veri Tanımı

Pregnancy veri setinde, Kaiser Foundation Sağlık Planı’na kayıtlı olan ve San Francisco Doğu Körfez bölgesinde bulunan kadınların 1960 ile 1967 yılları arasındaki gebelikleri yer almaktadır. The Child Health and Development Studies (Çocuk Sağlığı ve Gelişim Çalışmaları) kendini, sağlık ve hastalığın nesiller boyunca nasıl aktarıldığını araştırmaya adamıştır. Oakland, Kaliforniya’daki Kaiser Vakfı Sağlık Planına üye olan ailelerden 1959-1967 yılları arasında bir kadının hamile olduğunu anlayıp CHDS’ye gönüllü olması ile başlamıştır.

CHDS, şimdi yetişkin olan CHDS çocukları ve onların çocukları (CHDS torunları) üzerinde yeni bir takip çalışmaları dönemi başlatmıştır.

Gebelik süreci, anne ve bebeğin sağlığı açısından oldukça önemlidir. Bebeğin doğum ağırlığı; sağlıklı gebelik sürecinin bir göstergesi olup düşük doğum ağırlığı, bebeklerin sağlık sorunları ile karşılaşabileceği riskini arttırır. Bu nedenle, gebelik sürecini anlamak ve bebeğin doğum ağırlığını etkileyebilecek faktörleri incelemek mühimdir.

Veri setimizi import edelim.

pregnancy <- read.csv("PregnancyData.csv")

Veri setine göz atalım.

head(pregnancy)
##   case bwt gestation parity age height weight smoke
## 1    1 120       284      0  27     62    100     0
## 2    2 113       282      0  33     64    135     0
## 3    3 128       279      0  28     64    115     1
## 4    4 123        NA      0  36     69    190     0
## 5    5 108       282      0  23     67    125     1
## 6    6 136       286      0  25     62     93     0

2.1 Veri Seti Değişkenleri

• case: Kimlik numarasıdır. Sayısal bir değer olup Nominal türdedir. Unique olarak adlandırılan eşsiz değerlerdir. Veri setinde sıra numarası şeklinde yer alıp herhangi bir bilgi kriteri taşımadığı için analize başlanmadan önce silinecektir.

• bwt: Doğum ağırlığı (ons), Ratio (Oransal) veri türündedir. Uzmanlar tarafından yenidoğanların kilosu, 2.5 - 4.0 kg sınırları ile belirtilerek ortalama 3.2 kg olarak söylenmektedir. Ons cinsinden hesaplayacak olursak ağırlık aralığı 88.185-141.10 ons olmakla birlikte ortalama ağırlık ise 112.876 ons’a karşılık gelmektedir. Araştırma kapsamında, bebeklerin doğum ağırlığı 88-141 ons aralığında ise sağlıklı olarak kabul edilecektir.

Bağımlı değişken olarak kullanılacaktır.

• gestation: Gebelik süresi (gün), Interval (Aralıklı) veri türüne aittir. Sağlıklı bir gebelik 37-42 hafta (259-294 gün) arası sürer. 37 hafta (259 gün) öncesinde olan doğumlar; erken doğum, 42 hafta (294 gün) sonrasında gerçekleşen doğumlar ise geç doğum olarak adlandırılırlar. Erken doğumun bazı nedenleri; daha önceden erken doğum yapmış olmak, gebelikte yeterince kilo alınmaması, gebelikte sigara içimidir. Ayrıca erken doğumlar, düşük doğum ağırlığına neden olabilirler. Geç doğumların ise yüksek oranda kesin bir nedeni yoktur.

• parity: İlk gebelik için ikili gösterge (0 = ilk gebelik), Nominal türdedir. Annenin daha önce gebelik yaşayıp yaşamadığını ifade eder. Önceden gebelik yaşama; bazı metabolik/fizyolojik değişikliklere, yenidoğan bebeğinin kilosuna bile etki gösterebilir.

• age: Annenin yaşı, Ordinaldir. İdeal anne olma yaşı konusunda farklı görüşler ve tercihler vardır. Görüşlerin birleştirilmesi üzerine, analiz kapsamda ideal yaş aralığı 20-35 olarak alınacaktır.

• height: Annenin boyu (inç), Ratio (Oransal) veri türündendir.

• weight: Annenin ağırlığı (pound) ), Ratio (Oransal) veri türündendir.

height & weight: Annenin boyu ve kilosu hem genetik faktörler ile hem de büyüme/gelişme anlamında bebeğin ağırlığını etkileyebilir. Gebelik için ideal boy/kilo sınırı yoktur çünkü bu ölçüler kişiden kişiye farklılık gösterir. Ancak çalışma kapsamında, bu değişkenler için Vücut Kitle İndeksi hesaplanarak ideallik test edilecektir.

• smoke: Annenin sigara içip içmediğine dair ikili gösterge, Nominaldir. Sigara içmenin bilindiği üzere sağlığa, oldukça fazla zararı vardır. Gebelikte sigara kullanımı ise anneye zarar vermekle birlikte bebeğe de zarar verebilir. Özellikle erken doğum riski artabilir.

3 Problemin Tanımı ve Amaçlar

Veri setinde bulunan bwt değişkeni, bebeklerin doğum ağırlıklarını ifade etmektedir. Araştırma kapsamında; bebeklerin doğum ağırlıklarına etki eden faktörler belirlenecektir. Ayrıca (eğer varsa) bebeklerin doğum ağırlığında etkili olan değişkenler, başka bebeklerin doğum ağırlıklarını tahmin etmek için de kullanılacaktır. Bebeklerin doğum ağırlıklarının tahmini ile; • Bebeğin doğum ağırlığı hakkında daha önceden bilgi edinmek isteyen aileler veya sağlık uzmanlarına, • Sağlık politikalarının geliştirilmesi veya uygulanması için ilgili kurumlara (Örneğin; sigara kullanımını azaltmak veya obeziteyle mücadele etmek), katkı sağlanmış olunacaktır.

4 Verilerin Yapısı ve Niteliği

Veri setine göz attığımızda “case” değişkeninin unique olarak adlandırılan kimlik numarası olduğunu görmekteyiz. Analizimize herhangi bir katkı sağlamayacağı için o değişkeni veri setinden çıkarabiliriz.

pregnancy$case <- NULL

Analiz kapsamında, herhangi bir değişkenin %15’inden fazlası missing ise, o değişken silinecektir. Bu anlamda veri setinin toplam gözlem sayısına bakalım. Böylece değişkenlerin %15 ini hesaplayabiliriz. Ardından eksik gözlem durumunu kontrol edelim.

Az önce bulunduğu üzere, toplamda 1236 gözlem var. %15’ini hesaplayalım.

1236 * 0.15
## [1] 185.4

185.4 değerini 185 olarak kabul edelim. Herhangi bir değişkenin 185 veya daha fazlası kadar eksik gözlemi var ise o değişkeni, veri setimizden çıkaralım.

4.1 Eksik Gözlem Kontrolü

Eksik gözlemler bulunan satırları inceleyelim.

pregnancy[!complete.cases(pregnancy),]
##      bwt gestation parity age height weight smoke
## 4    123        NA      0  36     69    190     0
## 40   128       282      0  31     65     NA     0
## 43   138       302      0  26     NA     NA     1
## 86   129       274      0  29     71     NA     1
## 90   114        NA      0  24     67    113     1
## 94    92        NA      0  31     67    130     0
## 99   128        NA      0  35     62    110     0
## 103  116       286      0  24     61     NA     0
## 111  103       269      0  26     65     NA     1
## 114  134       293      0  21     65     NA     0
## 153  127       336      0  29     NA     NA     0
## 155  129        NA      0  23     NA     NA     1
## 159  105       281      0  39     61     NA     0
## 170  126       293      0  29     59    110    NA
## 186  131       286      0  34     NA     NA     1
## 194  125       302      0  32     61     NA     1
## 205  151       310      0  21     65     NA     0
## 219   90       269      0  26     67    125    NA
## 231  111       284      0  22     NA     NA     1
## 243  111        NA      0  27     63    105     1
## 255  130       274      0  26     64    185    NA
## 256  106       275      0  31     65    142    NA
## 312   93       256      0  34     66     NA     1
## 338  131       283      0  31     NA     NA     0
## 353  121       284      0  27     63     NA     1
## 361  107       278      1  27     NA    135     0
## 364  107       300      0  19     NA     NA     1
## 400  121       286      1  NA     NA     NA     0
## 429  116       272      0  NA     63    138     1
## 433  115       269      0  30     62    115    NA
## 440  116       315      0  26     NA     NA     0
## 444  118       280      0  27     NA     NA     1
## 478  119       280      1  25     61     NA     1
## 479  123       272      0  28     NA     NA     0
## 482  124       291      0  26     66     NA     0
## 509  119       279      1  20     NA     NA     1
## 526  146       277      0  32     NA     NA     0
## 601  142       284      0  37     68    155    NA
## 642  151       298      0  37     64    135    NA
## 649  109       271      0  27     61     NA     1
## 651  121        NA      0  31     68    132     0
## 654  120       280      0  29     NA     NA     1
## 666  141       292      0  29     62    110    NA
## 672  158       296      0  28     66    140    NA
## 699  141       281      0  28     NA     NA     1
## 707  114        NA      0  23     63    116     1
## 740   71        NA      0  19     64    120     0
## 754  111       289      0  26     NA     NA     1
## 763  105       261      0  32     NA     NA     1
## 848  134       278      0  28     NA    126     1
## 875  135       300      0  25     64     NA     0
## 880  129        NA      1  19     61    110     0
## 883  116       280      1  22     59     NA     1
## 921  108       274      0  28     66    175    NA
## 964  107        NA      0  19     60    118     0
## 972  136        NA      0  36     66    135     0
## 1014 133       274      0  30     63     NA     0
## 1045 117       323      0  26     62     NA     0
## 1178 146       305      0  23     NA     NA     0
## 1191 104       275      0  24     NA     NA     0
## 1193 124        NA      1  39     65    228     0
## 1216 152       267      0  28     NA    119     1

Eksik gözlemleri kontrol edelim.

colSums(is.na(pregnancy))
##       bwt gestation    parity       age    height    weight     smoke 
##         0        13         0         2        22        36        10

Hiçbir değişkenimizin eksik gözlem sayısı 185’i aşmamaktadır. O halde herhangi bir değişkeni silmemize gerek kalmaz. Eksik değerler için değer ataması yapabiliriz.

4.1.1 Eksik Gözlemlerin Yapı İncelenmesi

4.1.1.1 FunModeling Paketi ile İnceleme

library(funModeling)
## Zorunlu paket yükleniyor: Hmisc
## Zorunlu paket yükleniyor: lattice
## Zorunlu paket yükleniyor: survival
## Zorunlu paket yükleniyor: Formula
## Zorunlu paket yükleniyor: ggplot2
## 
## Attaching package: 'Hmisc'
## The following objects are masked from 'package:base':
## 
##     format.pval, units
## funModeling v.1.9.4 :)
## Examples and tutorials at livebook.datascienceheroes.com
##  / Now in Spanish: librovivodecienciadedatos.ai
df_status(pregnancy)
##    variable q_zeros p_zeros q_na p_na q_inf p_inf    type unique
## 1       bwt       0    0.00    0 0.00     0     0 integer    107
## 2 gestation       0    0.00   13 1.05     0     0 integer    106
## 3    parity     921   74.51    0 0.00     0     0 integer      2
## 4       age       0    0.00    2 0.16     0     0 integer     30
## 5    height       0    0.00   22 1.78     0     0 integer     19
## 6    weight       0    0.00   36 2.91     0     0 integer    105
## 7     smoke     742   60.03   10 0.81     0     0 integer      2
preg_na <- df_status(pregnancy)
##    variable q_zeros p_zeros q_na p_na q_inf p_inf    type unique
## 1       bwt       0    0.00    0 0.00     0     0 integer    107
## 2 gestation       0    0.00   13 1.05     0     0 integer    106
## 3    parity     921   74.51    0 0.00     0     0 integer      2
## 4       age       0    0.00    2 0.16     0     0 integer     30
## 5    height       0    0.00   22 1.78     0     0 integer     19
## 6    weight       0    0.00   36 2.91     0     0 integer    105
## 7     smoke     742   60.03   10 0.81     0     0 integer      2
preg_na[,c("variable","p_na")] 
##    variable p_na
## 1       bwt 0.00
## 2 gestation 1.05
## 3    parity 0.00
## 4       age 0.16
## 5    height 1.78
## 6    weight 2.91
## 7     smoke 0.81

Eksik gözlemlerin sayılarını bulmuştuk. Yukarıdaki tabloda da oranları yer almaktadır. En çok eksik gözlemin weight ve height değişkenlerinde olduğunu görmekteyiz.

Hiçbir değişkenin eksik gözlem oranının %15’i aşmadığı buradan da görülmektedir.

4.1.1.2 Mice Paketi ile İnceleme

library(mice)
## 
## Attaching package: 'mice'
## The following object is masked from 'package:stats':
## 
##     filter
## The following objects are masked from 'package:base':
## 
##     cbind, rbind
md.pattern(pregnancy)

##      bwt parity age smoke gestation height weight   
## 1174   1      1   1     1         1      1      1  0
## 17     1      1   1     1         1      1      0  1
## 3      1      1   1     1         1      0      1  1
## 17     1      1   1     1         1      0      0  2
## 12     1      1   1     1         0      1      1  1
## 1      1      1   1     1         0      0      0  3
## 10     1      1   1     0         1      1      1  1
## 1      1      1   0     1         1      1      1  1
## 1      1      1   0     1         1      0      0  3
##        0      0   2    10        13     22     36 83

bwt ve parity değişkenlerinde eksik gözlem olmadığını buradan da görmekteyiz.

4.1.1.3 Oran ve Model ile İnceleme

library(VIM)
## Zorunlu paket yükleniyor: colorspace
## Zorunlu paket yükleniyor: grid
## VIM is ready to use.
## Suggestions and bug-reports can be submitted at: https://github.com/statistikat/VIM/issues
## 
## Attaching package: 'VIM'
## The following object is masked from 'package:datasets':
## 
##     sleep
library(ISLR)
aggr(pregnancy,col=c("steelblue1","violet"),numbers = TRUE, sortVars = TRUE, 
     labels = names(pregnancy),cex.axis = .7, gap = 7,
     ylab=c("Eksik Gözlem Oranları","Eksik Gözlem Modeli"))

## 
##  Variables sorted by number of missings: 
##   Variable       Count
##     weight 0.029126214
##     height 0.017799353
##  gestation 0.010517799
##      smoke 0.008090615
##        age 0.001618123
##        bwt 0.000000000
##     parity 0.000000000

Soldaki grafiğe baktığımızda, funModeling ile bulunan oranların grafiğini görürüz. Sağdaki grafik de eksik gözlemlerin modellenmiş halidir.

Eksik gözlem sıraları büyükten küçüğe olacak şekilde; weight - height - gestation - smoke - age değişkenlerindedir.

4.2 Eksik Gözlemleri Doldurma

Eksik gözlemleri doldurmada Karar Ağaçları yöntemi tercih edilecektir.

Karar ağaçları, eksik gözlemleri doldurmak için veri setindeki diğer özelliklerden faydalanır. Bu sayede eksik gözlemler için daha güvenilir sonuçlar sağlanır.

Yapılan analizler ile bwt ve parity değişkenlerinde eksik gözlem olmadığı görülmektedir. Yani eksik gözlem doldurma işlemi, diğer değişkenler için yapılacaktır.

4.2.1 Regresyon Yöntemi ile Eksik Gözlem Doldurma

gestation değişkeni

Gestation değişkeni, sayısal olduğu için regresyon yöntemi tercih edilir. Gestation değişkeni, bağımlı değişken gibi alınır. Diğer değişkenler sayesinde eksik gözlemler için en güvenilir sonuçlar bulunmaya çalışılır.

library(Hmisc)
impute_arg <- aregImpute(gestation ~ bwt + parity + age + height + weight + smoke, data = pregnancy, n.impute = 1)
## Iteration 1 
Iteration 2 
Iteration 3 
Iteration 4 
# Doldurulan gestation değerleri;
impute_arg$imputed$gestation 
##      [,1]
## 4     290
## 90    266
## 94    248
## 99    268
## 155   297
## 243   278
## 651   286
## 707   300
## 740   232
## 880   292
## 964   277
## 972   286
## 1193  267
new <- which(is.na(pregnancy$gestation))

# Atama işlemi;
pregnancy[new,]$gestation <- impute_arg$imputed$gestation  

age değişkeni

Age değişkeni, sayısal olduğu için regresyon yöntemi tercih edilir. Age değişkeni, bağımlı değişken gibi alınır. Diğer değişkenler sayesinde eksik gözlemler için en güvenilir sonuçlar bulunmaya çalışılır.

library(Hmisc)
impute_arg <- aregImpute(age ~ bwt + parity + gestation + height + weight + smoke, data = pregnancy, n.impute = 1)
## Iteration 1 
Iteration 2 
Iteration 3 
Iteration 4 
# Doldurulan age değerleri;
impute_arg$imputed$age 
##     [,1]
## 400   20
## 429   23
new2 <- which(is.na(pregnancy$age))

# Atama işlemi;
pregnancy[new2,]$age <- impute_arg$imputed$age  

height değişkeni

Height değişkeni, sayısal olduğu için regresyon yöntemi tercih edilir. Height değişkeni, bağımlı değişken gibi alınır. Diğer değişkenler sayesinde eksik gözlemler için en güvenilir sonuçlar bulunmaya çalışılır.

library(Hmisc)
impute_arg <- aregImpute(height ~ bwt + parity + gestation + age + weight + smoke, data = pregnancy, n.impute = 1)
## Iteration 1 
Iteration 2 
Iteration 3 
Iteration 4 
# Doldurulan age değerleri;
impute_arg$imputed$height 
##      [,1]
## 43     65
## 153    67
## 155    61
## 186    64
## 231    62
## 338    67
## 361    66
## 364    62
## 400    63
## 440    65
## 444    65
## 479    63
## 509    70
## 526    60
## 654    64
## 699    64
## 754    63
## 763    63
## 848    68
## 1178   60
## 1191   67
## 1216   68
new3 <- which(is.na(pregnancy$height))

# Atama işlemi;
pregnancy[new3,]$height <- impute_arg$imputed$height  

weight değişkeni

Height değişkeni, sayısal olduğu için regresyon yöntemi tercih edilir. Weight değişkeni, bağımlı değişken gibi alınır. Diğer değişkenler sayesinde eksik gözlemler için en güvenilir sonuçlar bulunmaya çalışılır.

library(Hmisc)
impute_arg <- aregImpute(weight ~ bwt + parity + gestation + age + height + smoke, data = pregnancy, n.impute = 1)
## Iteration 1 
Iteration 2 
Iteration 3 
Iteration 4 
# Doldurulan age değerleri;
impute_arg$imputed$weight 
##      [,1]
## 40    165
## 43    116
## 86    134
## 103   138
## 111   123
## 114   122
## 153   145
## 155   121
## 159   135
## 186   130
## 194   111
## 205   165
## 231   103
## 312   135
## 338   140
## 353   113
## 364    94
## 400   105
## 440   110
## 444   104
## 478    95
## 479   138
## 482   134
## 509   140
## 526   107
## 649   105
## 654   130
## 699   126
## 754   103
## 763   107
## 875   185
## 883   112
## 1014  112
## 1045  116
## 1178  105
## 1191  120
new4 <- which(is.na(pregnancy$weight))

# Atama işlemi;
pregnancy[new4,]$weight <- impute_arg$imputed$weight  

4.2.2 Karar Ağaçları Yöntemi ile Eksik Gözlem Doldurma

smoke değişkeni

Smoke değişkeni kategorik değişken olduğu için karar ağaçları kullanılır. Smoke değişkeni, bağımlı değişken gibi alınır. Diğer değişkenler sayesinde eksik gözlemler için en güvenilir sonuçlar bulunmaya çalışılır. Değişken, kategorik olduğu için method olarak “class” tercih edilir.

Fakat bu işlemlerden önce ve sonra smoke değişkenini factor olarak tanımlamalıyız.

pregnancy$smoke <- factor(pregnancy$smoke, levels=c(0,1), labels=c("No", "Yes"))
library(rpart)
rtree <- rpart(smoke ~ bwt + parity + gestation + height + age + weight, pregnancy, method = "class")
library(rpart.plot)
rpart.plot(rtree, cex=0.5)

pregnancy$smoke <- ifelse(is.na(pregnancy$smoke), predict(rtree, pregnancy,type="class"), pregnancy$smoke)
pregnancy$smoke <- as.factor(pregnancy$smoke)

Veri setimizin ilk halinde sigara içmeyenler “0” , içenler ise “1” olarak kodlanmıştı. Bu aşama ile eksik gözlemler dolduruldu ancak sigara içmeyenler “1” , içenler ise “2” olarak güncellendi.

Eksik gözlemlerin doldurulduğunu teyit edelim;

colSums(is.na(pregnancy))
##       bwt gestation    parity       age    height    weight     smoke 
##         0         0         0         0         0         0         0

Görüldüğü üzere veri setimizdeki eksik değerler doldurulmuştur.

4.3 Veri Kalitesi İncelemesi

Bu başlık altında; + Değişkenler farklı ölçüm türlerinden tek bir türe çevrilecektir. Örneğin ağırlık için ons ve pound ölçümleri kullanılmıştır. Ağırlıklar kg cinsine, uzunluk ise cm cinsine çevrilecektir. + Kategorik değişkenler etiketlenecektir. + Ham veri için genel bir analiz yapılacaktır.

4.3.1 Değişkenlerin Çevrilmesi

bwt değişkeni

bwt değişkeni ons cinsindendir. 1 ons yaklaşık 28.35 gram’a eşittir. Bu sebeple bwt değişkeni değerlerini öncelikle 28.35 ile çarparak gram değerlerini bulalım. Ardından 1000’e bölerek kg cinsinden yazalım.

pregnancy$bwt <- (pregnancy$bwt*28.35) / 1000

height değişkeni

height değişkeni inç cinsindendir. 1 inç 2.54 cm olduğu için height değerlerini 2.54 ile çarpıp cm cinsinden yazalım.

pregnancy$height <- pregnancy$height * 2.54

weight değişkeni

weight değişkeni pound cinsindendir. 1 pound 0.45 kg olduğu için weight değerlerini 0.45 ile çarpıp kg cinsinden yazalım.

pregnancy$weight <- pregnancy$weight * 0.45

4.3.2 Kategorik Değişkenleri Belirleme

Veri setimizde yer alan parity ve smoke değişkenleri kategorik değişkenlerdir. Eksik gözlemleri doldururken smoke değişkenini factor olarak belirtmiştik. Şimdi bu işlemi parity için de yapalım.

pregnancy$parity <- factor(pregnancy$parity, levels=c(0,1), labels=c("No", "Yes"))

Eksik gözlemlerin doldurulması aşamasında smoke değişkeninin kategorileri 1 ve 2 olarak güncellenmişti. Değerlere etiketlerini atayalım.

pregnancy$smoke <- factor(pregnancy$smoke, levels=c(1,2), labels=c("No", "Yes"))

4.3.3 Betimsel İstatistikler

Veri setinin genel özetine bakalım.

str(pregnancy)
## 'data.frame':    1236 obs. of  7 variables:
##  $ bwt      : num  3.4 3.2 3.63 3.49 3.06 ...
##  $ gestation: num  284 282 279 290 282 286 244 245 289 299 ...
##  $ parity   : Factor w/ 2 levels "No","Yes": 1 1 1 1 1 1 1 1 1 1 ...
##  $ age      : num  27 33 28 36 23 25 33 23 25 30 ...
##  $ height   : num  157 163 163 175 170 ...
##  $ weight   : num  45 60.8 51.8 85.5 56.2 ...
##  $ smoke    : Factor w/ 2 levels "No","Yes": 1 1 2 1 2 1 1 1 1 2 ...

1236 gözlem ve 7 değişken olduğunu görmekteyiz. parity ve smoke değişkenleri factor olup diğer değişkenler numeric türündedir.

Tüm nicel değişkenlerin histogramlarına ve boxplotlarına kısaca göz atalım.

plot_num(pregnancy)

Histogramlara göz atıldığında, normale en yakın dağılımın bwt ve height değişkenleri için olduğunu görmekteyiz. gestation ve weight değişkenlerinin sivri, age değişkeninin ise daha yaygın bir dağılımı var. Ayrıca yine age değişkeninde sağa çarpıklık söz konusu gibi duruyor.

Boxplotlara da bakacak olursak;

boxplot(pregnancy$bwt, pregnancy$gestation, pregnancy$age, pregnancy$height, pregnancy$weight, 
        main="Boxplots", names=c("bwt", "gestation", "age", "height", "weight"), col="orange")

Elbette tüm boxplotlara birden baktığımız için pek ayrıntılı sonuçlar görememekteyiz. Genel bir youm yapacak olursak, en çok uç değerin gestation ve weight değişkenlerinde olduğu görünmektedir.

Ancak yalnızca histogramlara veya boxplotlara bakarak yorum yapmak pek de doğru olmaz. Bu nedenle değişkenler tek tek, grafikleri ve istatistikleri ile incelenecektir.

Değişkenlerin genel özetlerine bakıp tek tek incelemeye geçelim.

sum_pregnancy <- summary(pregnancy)

Özet istatistikler, deüğişkene göre sırasıyla yorumlanacaktır.

4.3.3.1 bwt değişkeni

sum_pregnancy
##       bwt          gestation     parity         age            height     
##  Min.   :1.559   Min.   :148.0   No :921   Min.   :15.00   Min.   :134.6  
##  1st Qu.:3.083   1st Qu.:272.0   Yes:315   1st Qu.:23.00   1st Qu.:157.5  
##  Median :3.402   Median :280.0             Median :26.00   Median :162.6  
##  Mean   :3.390   Mean   :279.3             Mean   :27.25   Mean   :162.7  
##  3rd Qu.:3.714   3rd Qu.:288.0             3rd Qu.:31.00   3rd Qu.:167.6  
##  Max.   :4.990   Max.   :353.0             Max.   :45.00   Max.   :182.9  
##      weight       smoke    
##  Min.   : 39.15   No :751  
##  1st Qu.: 51.30   Yes:485  
##  Median : 56.25            
##  Mean   : 57.81            
##  3rd Qu.: 62.10            
##  Max.   :112.50

bwt değişkeninin min değeri 1.559 ve max değeri 4.990 kg olarak bulunmuştur.

Uzmanlar tarafından yenidoğanların kilosu, 2.5 - 4.0 kg sınırları ile belirtilerek ortalama 3.2 kg olarak söylenmektedir. Max değer olan 4.990’a baktığımızda, sağlıklı kilo olarak kabul ettiğimiz 4 kg üst sınırın üstünde yer aldığını görmekteyiz. Minimum değer de, doktorların sağlıklı kabu ettiği alt sınırın oldukça altındadır.

Ortalama ve medyan değerleri birbirine yakın değerlerdir. Bu da bize, verinin ortalamaya yakın simetrisi olduğunu gösterebilir.

Çarpıklık ve basıklık değerlerini incelersek;

library(moments)
skewness(pregnancy$bwt)
## [1] -0.1406442
kurtosis(pregnancy$bwt)
## [1] 3.442576

Çapıklık değeri -0.1406442 ve basıklık değeri 3.442576 olarak bulunmuştur. Bu da bize bwt değişkeni dağılımının sivri ve hafif sola çarpık olduğunu söyler.

Ancak emin olmak için histograma da bakalım.

hist(pregnancy$bwt, col = "cadetblue3", main = "Doğum Ağırlığı (kg) Histogramı")

Histograma bakınca, değişkenin gerçekten de normale yakın dağılımı olduğunu görmekteyiz.

Normallik varsayımını incelemek için QQ plot çizelim.

qqnorm(pregnancy$bwt, col = "darkblue", main = "Doğum Ağırlığı (kg) QQ Plot")
qqline(pregnancy$bwt, col = "red")

Q-Q Grafiğinden de değişkenin dağılımının normale oldukça yakın olduğunu görmekteyiz. Gözlemler eğriye oldukça yakınlar. Ancak baş ve uç kısımlarındaki değerlerin incelenmesi gerekmektedir.

library(funModeling)
profiling_num(pregnancy$bwt)
##   variable     mean   std_dev variation_coef     p_01   p_05     p_25  p_50
## 1      var 3.390004 0.5170034      0.1525082 2.022773 2.4948 3.083063 3.402
##      p_75    p_95    p_99   skewness kurtosis       iqr             range_98
## 1 3.71385 4.22415 4.62105 -0.1406442 3.442576 0.6307875 [2.0227725, 4.62105]
##            range_80
## 1 [2.74995, 4.0257]

bwt değişkeninin ortalamasının yaklaşık 3.39, standart sapmasının yaklaşık 0.517 olduğunu görürüz. variation_coef, varyasyon katsayısıdır. bir değişkenin ortalama değerine göre ne kadar değiştiğini gösterir. Daha spesifik olarak, varyasyon katsayısı, bir değişkenin ortalama değerine göre ne kadar değiştiğini gösterir. Standart sapmanın ortalamaya oranıdır. bwt değeri için bu değer yaklaşık 0.15’dir.

Standart sapmanın yaklaşık olarak 0.517 olması, veri setindeki değerlerin ortalama değerden ne kadar sapma gösterdiği hakkında bilgi verir. Bu değer düşük bir standart sapma olarak yorumlanabilir ve veri setindeki değerlerin birbirine yakın olduğunu gösterir.

Varyasyon katsayısının yaklaşık olarak 0.15 olması, veri setindeki değişkenin dağılımının ortalama değere göre ne kadar değiştiğini ölçer. Bu değer düşük bir varyasyon katsayısı olarak yorumlanabilir ve değişkenin dağılımının stabil ve homojen olduğunu gösterir. Bu nedenle, veri setindeki değerlerin birbirine yakın olduğu sonucuna varılabilir.

p_01 = 2.022773 değeri bwt’nin %1’ine karşılık gelen değerdir. p_05 = 3.08063 değeri bwt’nin %5’ine karşılık gelen değerdir. p_25 = 3.083063 değeri bwt’nin %25’ine karşılık gelen değerdir. Yani 1. çeyrek değeridir. p_50 = 3.402 değeri bwt’nin %50’sine karşılık gelen değerdir. Yani 2. çeyrek değer olup medyana eşittir. p_75 = 3.71385 değeri bwt’nin %75’ine karşılık gelen değerdir. Yani 3. çeyrek değeridir. p_95 = 4.22415 değeri bwt’nin %95’ine karşılık gelen değerdir.

boxplot(pregnancy$bwt , main = "Doğum Ağırlığı (kg) Boxplot", col = "orange")

Boxplot’u incelediğimizde bwt değişkeninin normale oldukça yakın bir dağılımının olduğunu görürüz. Medyan çizgisi, Q1 ve Q3 değerlerini ortalayan bir konumdadır. Ancak uç değerler vardır ve uç değerlerin dağılımı etkileyebileceği göz önünde bulundurulmalıdır.

4.3.3.2 gestation değişkeni

sum_pregnancy
##       bwt          gestation     parity         age            height     
##  Min.   :1.559   Min.   :148.0   No :921   Min.   :15.00   Min.   :134.6  
##  1st Qu.:3.083   1st Qu.:272.0   Yes:315   1st Qu.:23.00   1st Qu.:157.5  
##  Median :3.402   Median :280.0             Median :26.00   Median :162.6  
##  Mean   :3.390   Mean   :279.3             Mean   :27.25   Mean   :162.7  
##  3rd Qu.:3.714   3rd Qu.:288.0             3rd Qu.:31.00   3rd Qu.:167.6  
##  Max.   :4.990   Max.   :353.0             Max.   :45.00   Max.   :182.9  
##      weight       smoke    
##  Min.   : 39.15   No :751  
##  1st Qu.: 51.30   Yes:485  
##  Median : 56.25            
##  Mean   : 57.81            
##  3rd Qu.: 62.10            
##  Max.   :112.50

gestation değişkeninin min değeri 148.0 ve max değeri 353.0 olarak bulunmuştur.

Uzmanlar tarafından sağlıklı bir gebelik süresinin 37-42 hafta (259-294 gün) arası sürmesi gerektiği söylenmektedir. 37 hafta (259 gün) öncesinde olan doğumlar; erken doğum, 42 hafta (294 gün) sonrasında gerçekleşen doğumlar ise geç doğum olarak adlandırılırlar.

Max değer olan 353’e baktığımızda, sağlıklı olarak kabul ettiğimiz 294 gün üst sınırın üstünde yer aldığını görmekteyiz. Ayrıca minimum değer olan 148 değeri de 259 alt sınırının oldukça altındadır.

Ortalama ve medyan değerleri birbirine yakın değerlerdir. Bu da bize, verinin ortalamaya yakın simetrisi olduğunu gösterebilir.

Çarpıklık ve basıklık değerlerini incelersek;

library(moments)
skewness(pregnancy$gestation)
## [1] -0.7819864
kurtosis(pregnancy$gestation)
## [1] 9.487288

Çapıklık değeri -0.7784616 ve basıklık değeri 9.613986 olarak bulunmuştur. Bu da bize gestation değişkeni dağılımının sivri ve sola çarpık olduğunu söyler.

Ancak emin olmak için histograma da bakalım.

hist(pregnancy$gestation, col = "cadetblue3", main = "Gebelik Süresi (Gün) Histogramı")

Histogram, değişkenin oldukça sivri dağılımı olduğu izlenimini vermektedir. Ancak detaylı inceleme yapılmalıdır.

Normallik varsayımını incelemek için QQ plot çizelim.

qqnorm(pregnancy$gestation, col = "darkblue", main = "Gebelik Süresi (Gün) QQ Plot")
qqline(pregnancy$gestation, col = "red")

Q-Q Grafiği, dağılımın hafif kuyruklu olduğu izlenimini vermektedir. Doğrusal olmayan yapıdadır. Ayrıca uç değer kuşkusu da uyandırmaktadır.

library(funModeling)
profiling_num(pregnancy$gestation)
##   variable     mean  std_dev variation_coef   p_01 p_05 p_25 p_50 p_75 p_95
## 1      var 279.3026 16.06426     0.05751563 232.35  252  272  280  288  302
##     p_99   skewness kurtosis iqr         range_98   range_80
## 1 319.65 -0.7819864 9.487288  16 [232.35, 319.65] [262, 296]

gestation değişkeninin ortalamasının yaklaşık 279.33, standart sapmasının yaklaşık 15.98 olduğunu görürüz. Varyasyon katsayısı yaklaşık 0.057’dir

Standart sapmanın yaklaşık olarak 15.98 olması, veri setindeki değerlerin ortalama değerden ne kadar sapma gösterdiği hakkında bilgi verir. Bu değer, ortalamaya bakılınca düşük bir standart sapma olarak yorumlanabilir ve veri setindeki değerlerin birbirine yakın olduğunu gösterir.

Varyasyon katsayısının yaklaşık olarak 0.057 olması, veri setindeki değişkenin dağılımının ortalama değere göre ne kadar değiştiğini ölçer. Bu değer düşük bir varyasyon katsayısı olarak yorumlanabilir ve değişkenin dağılımının stabil ve homojen olduğunu gösterir. Bu nedenle, veri setindeki değerlerin birbirine yakın olduğu sonucuna varılabilir.

p_01 = 233.35 değeri gestation’ın %1’ine karşılık gelen değerdir. p_05 = 252 değeri gestation’ın %5’ine karşılık gelen değerdir. p_25 = 272 değeri gestation’ın %25’ine karşılık gelen değerdir. Yani 1. çeyrek değeridir. p_50 = 280 değeri gestation’ın %50’sine karşılık gelen değerdir. Yani 2. çeyrek değer olup medyana eşittir. p_75 = 288 değeri gestation’ın %75’ine karşılık gelen değerdir. Yani 3. çeyrek değeridir. p_95 = 302 değeri gestation’ın %95’ine karşılık gelen değerdir.

boxplot(pregnancy$gestation , main = "Gebelik Süresi (gün) Boxplot", col = "orange")

Boxplot’u incelediğimizde gestation değişkeninin normale oldukça yakın bir dağılımının olduğunu görürüz. Medyan çizgisi, Q1 ve Q3 değerlerini ortalayan bir konumdadır. Ancak oldukça fazla uç değer vardır ve uç değerlerin dağılımı etkileyebileceği göz önünde bulundurulmalıdır.

4.3.3.3 parity değişkeni

sum_pregnancy
##       bwt          gestation     parity         age            height     
##  Min.   :1.559   Min.   :148.0   No :921   Min.   :15.00   Min.   :134.6  
##  1st Qu.:3.083   1st Qu.:272.0   Yes:315   1st Qu.:23.00   1st Qu.:157.5  
##  Median :3.402   Median :280.0             Median :26.00   Median :162.6  
##  Mean   :3.390   Mean   :279.3             Mean   :27.25   Mean   :162.7  
##  3rd Qu.:3.714   3rd Qu.:288.0             3rd Qu.:31.00   3rd Qu.:167.6  
##  Max.   :4.990   Max.   :353.0             Max.   :45.00   Max.   :182.9  
##      weight       smoke    
##  Min.   : 39.15   No :751  
##  1st Qu.: 51.30   Yes:485  
##  Median : 56.25            
##  Mean   : 57.81            
##  3rd Qu.: 62.10            
##  Max.   :112.50

parity değişkeni kategorik değişkendir. Annenin daha önce gebelik yaşayıp yaşamadığını ifade eder.

No: İlk gebelik Yes: İlk gebelik değil, anlamına gelir.

Veri setindeki 921 kişinin ilk gebeliğinin bigileri yer alırken ilk gebeliği olmayan 315 kişi vardır.

freq(pregnancy$parity)

##   var frequency percentage cumulative_perc
## 1  No       921      74.51           74.51
## 2 Yes       315      25.49          100.00

İlk gebeliği olanlar veri setinin %75.51’ini oluşturuken ilk gebeliği olmayanlar %25.49’unu oluşturmaktadır.

4.3.3.4 age değişkeni

sum_pregnancy
##       bwt          gestation     parity         age            height     
##  Min.   :1.559   Min.   :148.0   No :921   Min.   :15.00   Min.   :134.6  
##  1st Qu.:3.083   1st Qu.:272.0   Yes:315   1st Qu.:23.00   1st Qu.:157.5  
##  Median :3.402   Median :280.0             Median :26.00   Median :162.6  
##  Mean   :3.390   Mean   :279.3             Mean   :27.25   Mean   :162.7  
##  3rd Qu.:3.714   3rd Qu.:288.0             3rd Qu.:31.00   3rd Qu.:167.6  
##  Max.   :4.990   Max.   :353.0             Max.   :45.00   Max.   :182.9  
##      weight       smoke    
##  Min.   : 39.15   No :751  
##  1st Qu.: 51.30   Yes:485  
##  Median : 56.25            
##  Mean   : 57.81            
##  3rd Qu.: 62.10            
##  Max.   :112.50

age değişkeninin min değeri 15.00 ve max değeri 45.00 olarak bulunmuştur.

İdeal anne olma yaşı konusunda farklı görüşler ve tercihler vardır. Görüşlerin birleştirilmesi üzerine, analiz kapsamda ideal yaş aralığı 20-35 olarak alınacaktır.

Max değer olan 45’e baktığımızda, sağlıklı olarak kabul ettiğimiz 35 üst sınırın üstünde yer aldığını görmekteyiz. Ayrıca minimum değer olan 15 değeri de 20 alt sınırının altındadır.

Ortalama ve medyan değerleri birbirine yakın değerlerdir. Bu da bize, verinin ortalamaya yakın simetrisi olduğunu gösterebilir.

Çarpıklık ve basıklık değerlerini incelersek;

library(moments)
skewness(pregnancy$age)
## [1] 0.585735
kurtosis(pregnancy$age)
## [1] 2.69848

Çapıklık değeri 0.5823172 ve basıklık değeri 2.693305 olarak bulunmuştur. Bu da bize age değişkeni dağılımının basık ve hafif sağa çarpık olduğunu söyler.

Ancak emin olmak için histograma da bakalım.

hist(pregnancy$age, col = "cadetblue3", main = "Annelerin Yaşları Histogramı")

Histogram, değişkenin sağa çarpık dağılımı olduğunu göstermektedir. Ancak detaylı inceleme yapılmalıdır.

Normallik varsayımını incelemek için QQ plot çizelim.

qqnorm(pregnancy$age, col = "darkblue", main = "Annelerin Yaşları QQ Plot")
qqline(pregnancy$age, col = "red")

Q-Q Grafiğinde öncelikle gürültü göze çarpmaktadır. Bu gürültünün sebebi uç değerler olabilir. Dönüşüm uygulamasından sonra tekrar kontrol sağlanacaktır.

library(funModeling)
profiling_num(pregnancy$age)
##   variable     mean  std_dev variation_coef p_01 p_05 p_25 p_50 p_75 p_95 p_99
## 1      var 27.24595 5.781671      0.2122029   18   19   23   26   31   38   41
##   skewness kurtosis iqr range_98 range_80
## 1 0.585735  2.69848   8 [18, 41] [20, 36]

age değişkeninin ortalamasının yaklaşık 27.26, standart sapmasının yaklaşık 5.78 olduğunu görürüz. Varyasyon katsayısı yaklaşık 0.212’dir

Standart sapmanın yaklaşık olarak 5.78 olması, veri setindeki değerlerin ortalama değerden ne kadar sapma gösterdiği hakkında bilgi verir. Bu değer, ortalamaya bakılınca düşük bir standart sapma olarak yorumlanabilir ve veri setindeki değerlerin birbirine yakın olduğunu gösterir. Ancak ilgili değişkenin yaş değişkeni olduğunu ve normal kabul ettiğimiz sınırları göz önünde bulundurursak çok da düşük bir standart sapma değildir.

Varyasyon katsayısının yaklaşık olarak 0.212 olması, veri setindeki değişkenin dağılımının ortalama değere göre ne kadar değiştiğini ölçer. Bu değer çok düşük olmayan (ancak yine de düşük) bir varyasyon katsayısı olarak yorumlanabilir ve değişkenin dağılımının homojene yakın olduğunu gösterir.

p_01 = 18 değeri age’in %1’ine karşılık gelen değerdir. p_05 = 19 değeri age’in %5’ine karşılık gelen değerdir. p_25 = 23 değeri age’in %25’ine karşılık gelen değerdir. Yani 1. çeyrek değeridir. p_50 = 26 değeri age’in %50’sine karşılık gelen değerdir. Yani 2. çeyrek değer olup medyana eşittir. p_75 = 31 değeri age’in %75’ine karşılık gelen değerdir. Yani 3. çeyrek değeridir. p_95 = 38 değeri age’in %95’ine karşılık gelen değerdir.

boxplot(pregnancy$age , main = "Annelerin Yaşları Boxplot", col = "orange")

Boxplot’u incelediğimizde age değişkeninin sağa çarpık dağılımının olduğunu görürüz. Ayrıca 2 tane de uç değer göze çarpmaktadır.

4.3.3.5 height değişkeni

sum_pregnancy
##       bwt          gestation     parity         age            height     
##  Min.   :1.559   Min.   :148.0   No :921   Min.   :15.00   Min.   :134.6  
##  1st Qu.:3.083   1st Qu.:272.0   Yes:315   1st Qu.:23.00   1st Qu.:157.5  
##  Median :3.402   Median :280.0             Median :26.00   Median :162.6  
##  Mean   :3.390   Mean   :279.3             Mean   :27.25   Mean   :162.7  
##  3rd Qu.:3.714   3rd Qu.:288.0             3rd Qu.:31.00   3rd Qu.:167.6  
##  Max.   :4.990   Max.   :353.0             Max.   :45.00   Max.   :182.9  
##      weight       smoke    
##  Min.   : 39.15   No :751  
##  1st Qu.: 51.30   Yes:485  
##  Median : 56.25            
##  Mean   : 57.81            
##  3rd Qu.: 62.10            
##  Max.   :112.50

height değişkeninin min değeri 134.6 ve max değeri 182.9 olarak bulunmuştur.

Uzmanlar tarafından anneler için sağlıklı boy ve kilo tanısı net olarak yoktur. Bu sebeple height değişkeninden hareketle vücut kitle indeksi hesaplanıp yorumlacaktır.

Max değer 182.9 min değer 134.6’dır.

Ortalama ve medyan değerleri birbirine oldukça yakın değerlerdir. Bu da bize, verinin ortalamaya yakın simetrisi olduğunu gösterebilir.

Çarpıklık ve basıklık değerlerini incelersek;

library(moments)
skewness(pregnancy$height)
## [1] -0.08052446
kurtosis(pregnancy$height)
## [1] 3.155305

Çapıklık değeri -0.08760216 ve basıklık değeri 3.172033 olarak bulunmuştur. Bu da bize height değişkeni dağılımının sivri ve hafif sola çarpık olduğunu söyler.

Ancak emin olmak için histograma da bakalım.

hist(pregnancy$height, col = "cadetblue3", main = "Annelerin Boyları (cm) Histogramı")

Histogram, değişkenin sivri ve hafif sola çarpık dağılımı olduğunu göstermektedir.

Normallik varsayımını incelemek için QQ plot çizelim.

qqnorm(pregnancy$height, col = "darkblue", main = "Annelerin Boyları (cm) QQ Plot")
qqline(pregnancy$height, col = "red")

Q-Q Grafiğinde öncelikle gürültü göze çarpmaktadır. Bu gürültünün sebebi uç değerler olabilir. Dönüşüm uygulamasından sonra tekrar kontrol sağlanacaktır.

library(funModeling)
profiling_num(pregnancy$height)
##   variable     mean  std_dev variation_coef   p_01  p_05   p_25   p_50   p_75
## 1      var 162.6977 6.440109     0.03958328 147.32 152.4 157.48 162.56 167.64
##     p_95  p_99    skewness kurtosis   iqr        range_98         range_80
## 1 172.72 177.8 -0.08052446 3.155305 10.16 [147.32, 177.8] [154.94, 170.18]

height değişkeninin ortalamasının yaklaşık 162.66, standart sapmasının yaklaşık 6.42 olduğunu görürüz. Varyasyon katsayısı yaklaşık 0.039’dur

Standart sapmanın yaklaşık olarak 16.42 olması, veri setindeki değerlerin ortalama değerden ne kadar sapma gösterdiği hakkında bilgi verir. Bu değer, ortalamaya bakılınca düşük bir standart sapma olarak yorumlanabilir ve veri setindeki değerlerin birbirine yakın olduğunu gösterir. Ancak ilgili değişkenin boy değişkeni olduğunu göz önünde bulundurursak çok da düşük bir standart sapma değildir.

Varyasyon katsayısının yaklaşık olarak 0.039 olması, veri setindeki değişkenin dağılımının ortalama değere göre ne kadar değiştiğini ölçer. Bu değer düşük bir varyasyon katsayısı olarak yorumlanabilir ve değişkenin dağılımının stabil ve homojen olduğunu gösterir. Bu nedenle, veri setindeki değerlerin birbirine yakın olduğu sonucuna varılabilir.

p_01 = 147.32 değeri height’in %1’ine karşılık gelen değerdir. p_05 = 152.4 değeri height’in %5’ine karşılık gelen değerdir. p_25 = 157.48 değeri height’in %25’ine karşılık gelen değerdir. Yani 1. çeyrek değeridir. p_50 = 162.56 değeri height’in %50’sine karşılık gelen değerdir. Yani 2. çeyrek değer olup medyana eşittir. p_75 = 167.64 değeri height’in %75’ine karşılık gelen değerdir. Yani 3. çeyrek değeridir. p_95 = 172.72 değeri height’in %95’ine karşılık gelen değerdir.

boxplot(pregnancy$height , main = "Annelerin Boyları (cm) Boxplot", col = "orange")

Boxplot’u incelediğimizde height değişkeninin normale oldukça yakın bir dağılımının olduğunu görürüz. Medyan çizgisi, Q1 ve Q3 değerlerini ortalayan bir konumdadır. Göze çarpan 2 tane de uç değer bulunmaktadır.

4.3.3.6 weight değişkeni

sum_pregnancy
##       bwt          gestation     parity         age            height     
##  Min.   :1.559   Min.   :148.0   No :921   Min.   :15.00   Min.   :134.6  
##  1st Qu.:3.083   1st Qu.:272.0   Yes:315   1st Qu.:23.00   1st Qu.:157.5  
##  Median :3.402   Median :280.0             Median :26.00   Median :162.6  
##  Mean   :3.390   Mean   :279.3             Mean   :27.25   Mean   :162.7  
##  3rd Qu.:3.714   3rd Qu.:288.0             3rd Qu.:31.00   3rd Qu.:167.6  
##  Max.   :4.990   Max.   :353.0             Max.   :45.00   Max.   :182.9  
##      weight       smoke    
##  Min.   : 39.15   No :751  
##  1st Qu.: 51.30   Yes:485  
##  Median : 56.25            
##  Mean   : 57.81            
##  3rd Qu.: 62.10            
##  Max.   :112.50

weight değişkeninin min değeri 39.15 ve max değeri 112.50 olarak bulunmuştur.

Uzmanlar tarafından anneler için sağlıklı boy ve kilo tanısı net olarak yoktur. Bu sebeple weight değişkeninden hareketle vücut kitle indeksi hesaplanıp yorumlacaktır.

Max değer 112.50 min değer 39.15’dir.

Ortalama ve medyan değerleri birbirine oldukça yakın değerlerdir. Bu da bize, verinin ortalamaya yakın simetrisi olduğunu gösterebilir.

Çarpıklık ve basıklık değerlerini incelersek;

library(moments)
skewness(pregnancy$weight)
## [1] 1.249546
kurtosis(pregnancy$weight)
## [1] 5.822213

Çapıklık değeri 1.245007 ve basıklık değeri 5.77239 olarak bulunmuştur. Bu da bize weight değişkeni dağılımının sivri ve sağa çarpık olduğunu söyler.

Ancak emin olmak için histograma da bakalım.

hist(pregnancy$weight, col = "cadetblue3", main = "Annelerin Ağırlıkları (kg) Histogramı")

Histogram, değişkenin sivri ve sağa çarpık dağılımı olduğunu göstermektedir.

Normallik varsayımını incelemek için QQ plot çizelim.

qqnorm(pregnancy$weight, col = "darkblue", main = "Annelerin Ağırlıkları (kg) QQ Plot")
qqline(pregnancy$weight, col = "red")

Q-Q Grafiği, dağılımın hafif kuyruklu olduğu izlenimini vermektedir. Ayrıca uç değer kuşkusu da uyandırmaktadır.

library(funModeling)
profiling_num(pregnancy$weight)
##   variable     mean  std_dev variation_coef p_01 p_05 p_25  p_50 p_75    p_95
## 1      var 57.81371 9.434347      0.1631853 42.3 45.9 51.3 56.25 62.1 76.1625
##      p_99 skewness kurtosis  iqr                 range_98       range_80
## 1 88.9425 1.249546 5.822213 10.8 [42.3, 88.9425000000001] [47.25, 69.75]

weight değişkeninin ortalamasının yaklaşık 57.89, standart sapmasının yaklaşık 9.48 olduğunu görürüz. Varyasyon katsayısı yaklaşık 0.16’dır.

Standart sapmanın yaklaşık olarak 9.48 olması, veri setindeki değerlerin ortalama değerden ne kadar sapma gösterdiği hakkında bilgi verir. Bu değer, ortalamaya bakılınca düşük bir standart sapma olarak yorumlanabilir ve veri setindeki değerlerin birbirine yakın olduğunu gösterir. Ancak ilgili değişkenin kilo değişkeni olduğunu göz önünde bulundurursak çok da düşük bir standart sapma değildir.

Varyasyon katsayısının yaklaşık olarak 0.16 olması, veri setindeki değişkenin dağılımının ortalama değere göre ne kadar değiştiğini ölçer. Bu değer düşük bir varyasyon katsayısı olarak yorumlanabilir ve değişkenin dağılımının stabil ve homojen olduğunu gösterir. Bu nedenle, veri setindeki değerlerin birbirine yakın olduğu sonucuna varılabilir.

p_01 = 42.0075 değeri weight’in %1’ine karşılık gelen değerdir. p_05 = 45.45 değeri weight’in %5’ine karşılık gelen değerdir. p_25 = 51.75 değeri weight’in %25’ine karşılık gelen değerdir. Yani 1. çeyrek değeridir. p_50 = 56.25 değeri weight’in %50’sine karşılık gelen değerdir. Yani 2. çeyrek değer olup medyana eşittir. p_75 = 62.6625 değeri weight’in %75’ine karşılık gelen değerdir. Yani 3. çeyrek değeridir. p_95 = 76.5 değeri weight’in %95’ine karşılık gelen değerdir.

boxplot(pregnancy$weight , main = "Annelerin Ağırlıkları (kg) Boxplot", col = "orange")

Boxplot’u incelediğimizde height değişkeninin sağa çarpık olduğunu görürüz. Ayrıca oldukça fazla uç değer vardır.

4.3.3.7 smoke değişkeni

sum_pregnancy
##       bwt          gestation     parity         age            height     
##  Min.   :1.559   Min.   :148.0   No :921   Min.   :15.00   Min.   :134.6  
##  1st Qu.:3.083   1st Qu.:272.0   Yes:315   1st Qu.:23.00   1st Qu.:157.5  
##  Median :3.402   Median :280.0             Median :26.00   Median :162.6  
##  Mean   :3.390   Mean   :279.3             Mean   :27.25   Mean   :162.7  
##  3rd Qu.:3.714   3rd Qu.:288.0             3rd Qu.:31.00   3rd Qu.:167.6  
##  Max.   :4.990   Max.   :353.0             Max.   :45.00   Max.   :182.9  
##      weight       smoke    
##  Min.   : 39.15   No :751  
##  1st Qu.: 51.30   Yes:485  
##  Median : 56.25            
##  Mean   : 57.81            
##  3rd Qu.: 62.10            
##  Max.   :112.50

smoke değişkeni kategorik değişkendir. Annenin daha önce gebelik yaşayıp yaşamadığını ifade eder.

Annenin sigara içip içmediğini ifade eder. Gebelikte sigara kullanımı ise anneye zarar vermekle birlikte bebeğe de zarar verebilir. Özellikle erken doğum riski artabilir.

No: Sigara içmiyor Yes: Sigara içiyor, anlamına gelir.

Veri setindeki 751 kişinin sigara içmediğinin bigileri yer alırken sigara içen 485 kişi vardır.

freq(pregnancy$smoke)

##   var frequency percentage cumulative_perc
## 1  No       751      60.76           60.76
## 2 Yes       485      39.24          100.00

Sigara içmeyenler veri setinin %60.76’sını oluşturuken sigara içenler %39.24’ünü oluşturmaktadır.

5 Eğitim ve Test Veri Kümelerini Oluşturma

Veri setinin %80’ini eğitim (train) ve %20’sini test olarak ayıralım.

Bağımlı değişkenimiz bwt (doğum ağırlıkları) olduğu için ilgili değişken olarak onu kullanacağız.

library(caret)
## 
## Attaching package: 'caret'
## The following object is masked from 'package:survival':
## 
##     cluster
set.seed(74367432)
train_id <- createDataPartition(pregnancy$bwt, p=0.80,
                              list=FALSE,
                              times=1)
train <- pregnancy[train_id,]
test <- pregnancy[-train_id,]

Veri kümelerini R’dan Excel’e çevirelim.

library("openxlsx")
write.xlsx(train, 'train.xlsx')
write.xlsx(test, 'test.xlsx')

Eğitim aşamaları bitene dek train veri setini kullanacağız.

Ufak bir inceleme yapalım.

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:Hmisc':
## 
##     src, summarize
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
glimpse(train)
## Rows: 990
## Columns: 7
## $ bwt       <dbl> 3.20355, 3.62880, 3.06180, 3.85560, 3.91230, 3.74220, 4.0540…
## $ gestation <dbl> 282, 279, 282, 286, 244, 245, 299, 351, 282, 279, 281, 273, …
## $ parity    <fct> No, No, No, No, No, No, No, No, No, No, No, No, No, No, No, …
## $ age       <dbl> 33, 28, 23, 25, 33, 23, 30, 27, 32, 23, 36, 30, 38, 33, 33, …
## $ height    <dbl> 162.56, 162.56, 170.18, 157.48, 157.48, 165.10, 167.64, 172.…
## $ weight    <dbl> 60.75, 51.75, 56.25, 41.85, 80.10, 63.00, 61.20, 54.00, 55.8…
## $ smoke     <fct> No, Yes, Yes, No, No, No, Yes, No, Yes, Yes, Yes, No, No, Ye…

Eğitim veri setimiz 990 gözlem ve 7 değişkenden oluşmaktadır.

5.1 Yeni Kategorik Değişken Oluşturma

gestation değişkeni, gün olarak gebelik süresini ifade eder. Sağlıklı bir gebelik 37-42 hafta (259-294 gün) arası sürer. 37 hafta (259 gün) öncesinde olan doğumlar; erken doğum, 42 hafta (294 gün) sonrasında gerçekleşen doğumlar ise geç doğum olarak adlandırılırlar.

gestation değişkenini kategorik değişkene çevirelim. + 259-294 gün arasında doğanlara sağlıklı süre için “Healthy”, + 259 gün öncesinde doğanlara erken doğum için “Early” + 294 gün sonrasında doğanlara ise geç doğum için “Late” yazalım.

train$gestation <- factor(ifelse(train$gestation < 259, "Early", 
                                      ifelse(train$gestation >= 259 & train$gestation <= 294, "Healthy",
                                      ifelse(train$gestation > 294, "Late", NA))), 
                                      levels = c("Healthy", "Late", "Early"),
                                      labels = c("Healthy", "Late", "Early"))

categories <- c("Early", "Healthy", "Late")
train$gestation <- factor(train$gestation, levels = categories)

6 Verilerin Açıklayıcı / Keşfedici Çözümlemesi

6.1 Genel Özet İstatistikleri

summary(train)
##       bwt          gestation   parity         age            height     
##  Min.   :1.559   Early  : 76   No :734   Min.   :15.00   Min.   :134.6  
##  1st Qu.:3.069   Healthy:806   Yes:256   1st Qu.:23.00   1st Qu.:157.5  
##  Median :3.402   Late   :108             Median :26.00   Median :162.6  
##  Mean   :3.392                           Mean   :27.09   Mean   :162.6  
##  3rd Qu.:3.714                           3rd Qu.:31.00   3rd Qu.:167.6  
##  Max.   :4.990                           Max.   :44.00   Max.   :180.3  
##      weight       smoke    
##  Min.   : 39.15   No :591  
##  1st Qu.: 51.30   Yes:399  
##  Median : 56.25            
##  Mean   : 57.72            
##  3rd Qu.: 62.10            
##  Max.   :112.50

bwt değişkeni

Max değeri 4.990 min değeri 1.559 olarak bulunmuştur. Ortanca ve ortalama değerleri birbirlerine oldukça yakındır. 1. çeyrek değeri 3.069 ve 3. çeyrek değeri 3.714’tür. Q1,Q2 ve ortancayı yorumlarsak normale yakın olabileceği izlenimini alırız.

gestation değişkeni

gestation değişkeni nicel bir değişkendi ancak factore çevrildi. 77 doğumun erken doğum, 806 doğumun sağlıklı günler içinde, 107’sinin geç doğum olduğunu göstermektedir.

parity değişkeni

Annelerin 734’ünün ilk doğumunun 256’sının ise ilk doğumunun olmadığını göstermektedir.

age değişkeni

Max değeri 44.00 min değeri 15.00 olarak bulunmuştur. Ortanca ve ortalama değerleri birbirlerine oldukça yakındır. 1. çeyrek değeri 23.00 ve 3. çeyrek değeri 31.00’dir. Q1,Q2 ve ortancayı yorumlarsak değişkenin sola çarpık olabileceği izlenimini alırız.

height değişkeni

Max değeri 180.3 min değeri 134.6 olarak bulunmuştur. Ortanca ve ortalama değerleri birbirlerine eşittir. 1. çeyrek değeri 157.5 ve 3. çeyrek değeri 167.6’dır. Q1,Q2 ve ortancayı yorumlarsak normale oldukça yakın olabileceği izlenimini alırız.

weight değişkeni

Max değeri 112.50 min değeri 39.15 olarak bulunmuştur. Ortanca ve ortalama değerleri birbirlerine eşittir. 1. çeyrek değeri 51.30 ve 3. çeyrek değeri 62.10’dur. Q1,Q2 ve ortancayı yorumlarsak değişkenin sola çarpık olabileceği izlenimini alırız.

smoke değişkeni

Annelerin 591’inin sigara içmediğini, 399’unun ise sigara içtiğini gösterir.

6.2 Özet İstatistikleri

6.2.1 Konum Ölçüleri

6.2.1.1 Nokta Özetleri

6.2.1.1.1 Üç Nokta Özeti

bwt değişkeni

n <- nrow(train)
train_siralama <- train[order(train$bwt),] 

#n çift sayı olduğu için;
a <- (n/2)
b <- (n/2)+1
(train_siralama$bwt[a] + train_siralama$bwt[b])/2
## [1] 3.402
median(train$bwt)
## [1] 3.402
mean(train$bwt)
## [1] 3.392464

Ortanca > Ortalama olduğu için sola çarpıktır.

age değişkeni

n <- nrow(train)
train_siralama <- train[order(train$age),] 

#n çift sayı olduğu için;
a <- (n/2)
b <- (n/2)+1
(train_siralama$age[a] + train_siralama$age[b])/2
## [1] 26
median(train$age)
## [1] 26
mean(train$age)
## [1] 27.08788

Ortanca < Ortalama olduğu için sağa çarpıktır.

height değişkeni

n <- nrow(train)
train_siralama <- train[order(train$height),] 

#n çift sayı olduğu için;
a <- (n/2)
b <- (n/2)+1
(train_siralama$height[a] + train_siralama$height[b])/2
## [1] 162.56
median(train$height)
## [1] 162.56
mean(train$height)
## [1] 162.5985

Ortanca < Ortalama olduğu için sağa çarpıktır.

weight değişkeni

n <- nrow(train)
train_siralama <- train[order(train$weight),] 

#n çift sayı olduğu için;
a <- (n/2)
b <- (n/2)+1
(train_siralama$weight[a] + train_siralama$weight[b])/2
## [1] 56.25
median(train$weight)
## [1] 56.25
mean(train$weight)
## [1] 57.72455

Ortanca < Ortalama olduğu için sağa çarpıktır.

6.2.1.1.2 Beş Nokta Özeti

bwt değişkeni

fivenum(train$bwt)
## [1] 1.55925 3.06180 3.40200 3.71385 4.98960

En küçük değer; 1.55925 Q1; 3.06180 Ortanca; 3.40200 Q3; 3.71385 En büyük değer; 4.98960

age değişkeni

fivenum(train$age)
## [1] 15 23 26 31 44

En küçük değer; 15 Q1; 23 Ortanca; 26 Q3; 31 En büyük değer; 44

height değişkeni

fivenum(train$height)
## [1] 134.62 157.48 162.56 167.64 180.34

En küçük değer; 134.62 Q1; 157.48
Ortanca; 162.56
Q3; 167.64
En büyük değer; 180.34

weight değişkeni

fivenum(train$weight)
## [1]  39.15  51.30  56.25  62.10 112.50

En küçük değer; 39.15
Q1; 51.30
Ortanca; 56.25
Q3; 62.10
En büyük değer; 112.50

6.2.1.2 Ortancalar

median(train$bwt)
## [1] 3.402
median(train$age)
## [1] 26
median(train$height)
## [1] 162.56
median(train$weight)
## [1] 56.25

Ortancalar; bwt değişkeni için 3.402 age değişkeni için 26 height değişkeni için 162.56 weight değişkeni için 56.25 bulunmuştur.

6.2.1.3 Aritmetik Ortalamalar

mean(train$bwt)
## [1] 3.392464
mean(train$age)
## [1] 27.08788
mean(train$height)
## [1] 162.5985
mean(train$weight)
## [1] 57.72455

Ortalamalar; bwt değişkeni için 3.392464 age değişkeni için 27.10909 height değişkeni için 162.6344 weight değişkeni için 57.81227 bulunmuştur.

6.2.1.4 Geometrik Ortalamalar

library(psych)
## 
## Attaching package: 'psych'
## The following object is masked from 'package:Hmisc':
## 
##     describe
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
geometric.mean(train$bwt)
## [1] 3.351785
geometric.mean(train$age)
## [1] 26.50861
geometric.mean(train$height)
## [1] 162.4708
geometric.mean(train$weight)
## [1] 57.02909

Geometrik ortalamalar; bwt değişkeni için 3.351785 age değişkeni için 26.52994 height değişkeni için 162.506 weight değişkeni için 57.11128 bulunmuştur.

6.2.1.5 Kesilmiş Ortalamalar

%15 oranı en sık kullanılan oran olduğu için biz de o oranda inceleme yapalım.

bwt değişkeni

point <- 0.15
mean(train$bwt, trim = point)
## [1] 3.398405
# Ham veri toplam gözlem sayısı;
n <- nrow(train)
n
## [1] 990
# Kalan gözlem sayısı;
ks <-n-(as.integer(2*point*n)) 
ks
## [1] 693

%15 kesilmiş ortalama alındığında 990 gözlemden 693 tanesi kalmaktadır. Ortalama değere bakacak olursak, ham veride 3.392464 idi. %15 kesilmiş halinde ise 3.398405 olarak bulunmuştur. Çok ufak bir azalma vardır.

age değişkeni

point <- 0.15
mean(train$age, trim = point)
## [1] 26.5562
# Ham veri toplam gözlem sayısı;
n <- nrow(train)
n
## [1] 990
# Kalan gözlem sayısı;
ks <-n-(as.integer(2*point*n)) 
ks
## [1] 693

%15 kesilmiş ortalama alındığında 990 gözlemden 693 tanesi kalmaktadır. Ortalama değere bakacak olursak, ham veride 27.10909 idi. %15 kesilmiş halinde ise 26.58501 olarak bulunmuştur. 0.52408 azalma vardır.

height değişkeni

point <- 0.15
mean(train$height, trim = point)
## [1] 162.6661
# Ham veri toplam gözlem sayısı;
n <- nrow(train)
n
## [1] 990
# Kalan gözlem sayısı;
ks <-n-(as.integer(2*point*n)) 
ks
## [1] 693

%15 kesilmiş ortalama alındığında 990 gözlemden 693 tanesi kalmaktadır. Ortalama değere bakacak olursak, ham veride 162.6344 idi. %15 kesilmiş halinde ise 162.6918 olarak bulunmuştur. Çok ufak bir artış vardır.

weight değişkeni

point <- 0.15
mean(train$weight, trim = point)
## [1] 56.7013
# Ham veri toplam gözlem sayısı;
n <- nrow(train)
n
## [1] 990
# Kalan gözlem sayısı;
ks <-n-(as.integer(2*point*n)) 
ks
## [1] 693

%15 kesilmiş ortalama alındığında 990 gözlemden 693 tanesi kalmaktadır. Ortalama değere bakacak olursak, ham veride 57.81227 idi. %15 kesilmiş halinde ise 56.75187 olarak bulunmuştur. Ufak bir azalma vardır.

6.2.2 Değişim Ölçüleri

6.2.2.1 Genişlik

genislik_bwt <- max(train$bwt) - min(train$bwt)
genislik_age <- max(train$age) - min(train$age)
genislik_height <- max(train$height) - min(train$height)
genislik_weight <- max(train$weight) - min(train$weight)
genislik_bwt
## [1] 3.43035
genislik_age
## [1] 29
genislik_height
## [1] 45.72
genislik_weight
## [1] 73.35

Genişlikler; bwt değişkeni için 3.43035 age değişkeni için 29 height değişkeni için 45.72 weight değişkeni için 73.35 bulunmuştur.

6.2.2.2 DAG

bwt değişkeni için

q1 <- as.vector(quantile(train$bwt,0.25))
q3 <- as.vector(quantile(train$bwt,0.75))
DAG_bwt <- q3-q1
DAG_bwt
## [1] 0.6449625

age değişkeni için

q1 <- as.vector(quantile(train$age,0.25))
q3 <- as.vector(quantile(train$age,0.75))
DAG_age <- q3-q1
DAG_age
## [1] 8

height değişkeni için

q1 <- as.vector(quantile(train$height,0.25))
q3 <- as.vector(quantile(train$height,0.75))
DAG_height <- q3-q1
DAG_height
## [1] 10.16

weight değişkeni için

q1 <- as.vector(quantile(train$weight,0.25))
q3 <- as.vector(quantile(train$weight,0.75))
DAG_weight <- q3-q1
DAG_weight
## [1] 10.8

DAG değerleri; bwt değişkeni için 0.6449625 age değişkeni için 8 height değişkeni için 10.16 weight değişkeni için 10.8 bulunmuştur.

6.2.2.3 Varyans

var(train$bwt)
## [1] 0.2625117
var(train$age)
## [1] 32.6404
var(train$height)
## [1] 41.32398
var(train$weight)
## [1] 87.44605

Varyanslar; bwt değişkeni için 0.2625117 age değişkeni için 32.62914 height değişkeni için 41.56781 weight değişkeni için 88.39662 bulunmuştur.

6.2.2.4 Değişim Katsayıları

(sd(train$bwt) / mean(train$bwt))*100
## [1] 15.10286
(sd(train$age) / mean(train$age))*100
## [1] 21.09127
(sd(train$height) / mean(train$height))*100
## [1] 3.953526
(sd(train$weight) / mean(train$weight))*100
## [1] 16.1998

Değişim katsayıları; bwt değişkeni için 15.10286 age değişkeni için 21.07113 height değişkeni için 3.964297 weight değişkeni için 16.26289 bulunmuştur.

6.2.2.5 MAD

bwt değişkeni için

sort <- train[order(train$bwt),]
medianf <- median(sort$bwt)
sort$fmed <- abs(sort$bwt-medianf)
sort2 <- sort[order(sort$fmed),]
mad <- median(sort2$fmed)
mad
## [1] 0.31185
median(train$bwt)
## [1] 3.402
mean(train$bwt)
## [1] 3.392464

Ortanca ve ortalama dahilinde mad değeri çok büyük bulunmamıştır. Bu da veri kümesindeki değerlerin ortalama çevresinde birbirine yakın kümelendiklerini gösterir.

age değişkeni için

sort <- train[order(train$age),]
medianf <- median(sort$age)
sort$fmed <- abs(sort$age-medianf)
sort2 <- sort[order(sort$fmed),]
mad <- median(sort2$fmed)
mad
## [1] 4
median(train$age)
## [1] 26
mean(train$age)
## [1] 27.08788

Ortanca ve ortalama dahilinde mad değeri küçük bulunmuştur. Bu da veri kümesindeki değerlerin ortalama çevresinde birbirine yakın kümelendiklerini gösterir.

height değişkeni için

sort <- train[order(train$height),]
medianf <- median(sort$height)
sort$fmed <- abs(sort$height-medianf)
sort2 <- sort[order(sort$fmed),]
mad <- median(sort2$fmed)
mad
## [1] 5.08
median(train$height)
## [1] 162.56
mean(train$height)
## [1] 162.5985

Ortanca ve ortalama dahilinde mad değeri küçük bulunmuştur. Bu da veri kümesindeki değerlerin ortalama çevresinde birbirine yakın kümelendiklerini gösterir.

weight değişkeni için

sort <- train[order(train$weight),]
medianf <- median(sort$weight)
sort$fmed <- abs(sort$weight-medianf)
sort2 <- sort[order(sort$fmed),]
mad <- median(sort2$fmed)
mad
## [1] 5.4
median(train$weight)
## [1] 56.25
mean(train$weight)
## [1] 57.72455

Ortanca ve ortalama dahilinde mad değeri küçük bulunmuştur. Bu da veri kümesindeki değerlerin ortalama çevresinde birbirine yakın kümelendiklerini gösterir.

6.2.2.6 Gini İndeksi

Gini, nitel verilerde değişkenliği ölçüsüdür.

gestation değişkeni

freq <- as.data.frame(table(train$gestation))
names(freq)[1] <- 'Gebelik Süresi'

gini <- function(a,b) {
  a1 <- (a/(a+b))**2
  b1 <- (b/(a+b))**2
  x<-1-(a1 + b1)
  return(x)
 warning = FALSE}
gn <- gini(freq[1,2],freq[2,2])
k <- 2
gn/((k-1)/k)
## [1] 0.3149716

Gini indeksi 0.3112129 bulunmuştur. Bu değer 0’a daha yakın olduğu için değişkenin dağılımının homojene daha yakın olduğu söylenebilir.

parity değişkeni

freq <- as.data.frame(table(train$parity))
names(freq)[1] <- 'Gebelik Süresi'

gini <- function(a,b) {
  a1 <- (a/(a+b))**2
  b1 <- (b/(a+b))**2
  x<-1-(a1 + b1)
  return(x)
 warning = FALSE}
gn <- gini(freq[1,2],freq[2,2])
k <- 2
gn/((k-1)/k)
## [1] 0.7668768

Gini indeksi 0.7668768 bulunmuştur. Bu değer 1’e oldukça yakın olduğu için değişkenin dağılımının heterojene yakın olduğu söylenebilir.

smoke değişkeni

freq <- as.data.frame(table(train$smoke))
names(freq)[1] <- 'Gebelik Süresi'

gini <- function(a,b) {
  a1 <- (a/(a+b))**2
  b1 <- (b/(a+b))**2
  x<-1-(a1 + b1)
  return(x)
 warning = FALSE}
gn <- gini(freq[1,2],freq[2,2])
k <- 2
gn/((k-1)/k)
## [1] 0.9623875

Gini indeksi 0.9623875 bulunmuştur. Bu değer neredeyse 1’e eşit olduğu için değişkenin dağılımının heterojen olduğu söylenebilir.

6.2.2.7 Entropi

Entropi

Entropi, nitel verilerde değişkenliği ölçüsüdür.

gestation değişkeni

freq <- as.data.frame(table(train$gestation))
names(freq)[1] <- 'Gebelik Süresi'

entropi <- function(base,a,b) {
  var <-  abs(((a)/(a+b))*log(((a)/(a+b)),base))-(((b)/(a+b))*log(((b)/(a+b)),base))
  return(var)
 warning = FALSE}
ent <- entropi(10,freq[1,2],freq[2,2])
k <- 2
ent/(log(k,10)) 
## [1] 0.4235474

Entropi 0.4196731 bulunmuştur. Bu değer biraz ortada. Ancak 0’a biraz daha yakın olduğu için değişkenin dağılımının homojene yakın olduğu söylenebilir.

parity değişkeni

freq <- as.data.frame(table(train$parity))
names(freq)[1] <- 'Gebelik Süresi'

entropi <- function(base,a,b) {
  var <-  abs(((a)/(a+b))*log(((a)/(a+b)),base))-(((b)/(a+b))*log(((b)/(a+b)),base))
  return(var)
 warning = FALSE}
ent <- entropi(10,freq[1,2],freq[2,2])
k <- 2
ent/(log(k,10)) 
## [1] 0.8246049

Entropi 0.8246049 bulunmuştur. Bu değer 1’e çok yakın olduğu için değişkenin dağılımının heterojene yakın olduğu söylenebilir.

smoke değişkeni

freq <- as.data.frame(table(train$smoke))
names(freq)[1] <- 'Gebelik Süresi'

entropi <- function(base,a,b) {
  var <-  abs(((a)/(a+b))*log(((a)/(a+b)),base))-(((b)/(a+b))*log(((b)/(a+b)),base))
  return(var)
 warning = FALSE}
ent <- entropi(10,freq[1,2],freq[2,2])
k <- 2
ent/(log(k,10)) 
## [1] 0.9726956

Entropi 0.9726956 bulunmuştur. Bu değer 1’e çok yakın olduğu için değişkenin dağılımının heterojene yakın olduğu söylenebilir.

6.2.3 Biçim Ölçüleri

6.2.3.1 Çarpıklık-Basıklık Katsayıları

bwt değişkeni

library(moments)
skewness(train$bwt)
## [1] -0.1238406
kurtosis(train$bwt)
## [1] 3.501518

Çapıklık değeri -0.1238406 ve basıklık değeri 3.501518 olarak bulunmuştur. Bu da bize bwt değişkeni dağılımının sivri ve hafif sola çarpık olduğunu söyler.

age değişkeni

library(moments)
skewness(train$age)
## [1] 0.5612459
kurtosis(train$age)
## [1] 2.66989

Çapıklık değeri 0.5546203 ve basıklık değeri 2.662981 olarak bulunmuştur. Bu da bize age değişkeni dağılımının basık ve sağa çarpık olduğunu söyler.

height değişkeni

library(moments)
skewness(train$height)
## [1] -0.1402213
kurtosis(train$height)
## [1] 3.222584

Çapıklık değeri -0.1304564 ve basıklık değeri 3.218946 olarak bulunmuştur. Bu da bize height değişkeni dağılımının sivri ve hafif sola çarpık olduğunu söyler.

weight değişkeni

library(moments)
skewness(train$weight)
## [1] 1.212535
kurtosis(train$weight)
## [1] 5.809795

Çapıklık değeri 1.219162 ve basıklık değeri 5.761421 olarak bulunmuştur. Bu da bize weight değişkeni dağılımının sivri ve sağa çarpık olduğunu söyler.

6.2.4 İlişki Ölçüleri

6.2.4.1 Kovaryans

6.2.4.1.1 Pearson İlişki (Korelasyon) Katsayısı

Pearson ilişkisini yorumlamak için normallik gerekir. Bu sebeple değişkenler arası pearson ilişki katsayısı şuan yorumlanmayacaktır.

6.2.4.1.2 Kısmi ilişki katsayısı

bwt, bağımlı değişken olmak üzere, diğer değişkenler kısmi ilişki katsayılarını hesaplayalım.

# Kısmi ilişki katsayıları
partial_cor_age <- summary(lm(bwt ~ age + height + weight, data = train))$coefficients["age", "Estimate"]
partial_cor_height <- summary(lm(bwt ~ age + height + weight, data = train))$coefficients["height", "Estimate"]
partial_cor_weight <- summary(lm(bwt ~ age + height + weight, data = train))$coefficients["weight", "Estimate"]

# Sonuçlar
partial_cor_age
## [1] 0.00192483
partial_cor_height
## [1] 0.01231122
partial_cor_weight
## [1] 0.00477022

Age: Age değişkeninin bwt (birth weight) ile kısmi ilişkisi 0.002058186 olarak hesaplanmıştır. Bu değer çok düşük olduğundan, yaşın bwt üzerindeki etkisi çok zayıftır ve istatistiksel olarak anlamlı bir ilişki göstermemektedir.

Height: Height değişkeninin bwt ile kısmi ilişkisi 0.01263818 olarak hesaplanmıştır. Bu pozitif katsayı, boyun birth weight üzerinde hafif bir pozitif etkisi olduğunu göstermektedir. Ancak, bu etki çok küçüktür.

Weight: Weight değişkeninin bwt ile kısmi ilişkisi 0.004503554 olarak hesaplanmıştır. Bu değer de çok düşüktür, bu nedenle ağırlığın bwt üzerindeki etkisi çok zayıftır ve istatistiksel olarak anlamlı bir ilişki göstermemektedir.

Sonuç olarak, verilen kısmi ilişki katsayılarına göre, age, height ve weight değişkenleri arasında bwt ile güçlü bir ilişki olduğunu söylemek doğru değildir. İlişkiler çok zayıf veya hemen hemen yoktur.

6.2.4.1.3 Spearman’ın ilişki katsayısı

bwt, bağımlı değişken olmak üzere, diğer değişkenler ile spearman hesaplayalım.

bwt ve age

correlation <- cor(train$bwt, train$age, method = "spearman")
correlation
## [1] 0.04436932

bwt ve age değişkenleri arasında çok zayıf bir sıralama ilişkisi olduğu söylenebilir. İlişki pozitif yönlüdür. Yani, bir değişkenin değeri artarken diğer değişkenin değeri de genellikle artma eğilimindedir.

bwt ve height

correlation <- cor(train$bwt, train$height, method = "spearman")
correlation
## [1] 0.2146011

Değişkenler arasında pozitif yönlü bir sıralama ilişkisi olduğunu gösterir. Yani, bir değişkenin değeri artarken diğer değişkenin değeri de genellikle artma eğilimindedir.

Ancak, katsayının değeri 1’e çok yakın olmadığından ilişki çok güçlü değildir. Orta düzeyde bir ilişki olduğunu söyleyebiliriz.

bwt ve weight

correlation <- cor(train$bwt, train$weight, method = "spearman")
correlation
## [1] 0.1895072

Değişkenler arasında pozitif yönlü bir sıralama ilişkisi olduğunu gösterir. Yani, bir değişkenin değeri artarken diğer değişkenin değeri de genellikle artma eğilimindedir.

Ancak, katsayının değeri 1’e çok yakın olmadığından ilişki çok güçlü değildir. Orta düzeyde bir ilişki olduğunu söyleyebiliriz.

6.3 Histogram Grafikleri

bwt değişkeni

Ancak emin olmak için histograma da bakalım.

k <- ceiling((log(2 * nrow(train))) + 1)
genislik <- max(train$bwt) - min(train$bwt)
binw <- genislik / k

ggplot(train, aes(bwt)) +
  geom_histogram(binwidth = binw, fill = "cadetblue3", colour = "black", alpha = 0.6) +
  ggtitle("Doğum Ağırlığı (kg) Histogramı")

Histograma bakınca, değişkenin gerçekten de normale yakın dağılımı olduğunu görmekteyiz.

age değişkeni

k <- ceiling((log(2 * nrow(train))) + 1)
genislik <- max(train$age) - min(train$age)
binw <- genislik / k

ggplot(train, aes(age)) +
  geom_histogram(binwidth = binw, fill = "darkorchid1", colour = "black", alpha = 0.6) +
  ggtitle("Annelerin Yaşları Histogramı")

Histogram, değişkenin hafif basık ve sağa çarpık dağılımı olduğunu göstermektedir.

height değişkeni

k <- ceiling((log(2 * nrow(train))) + 1)
genislik <- max(train$height) - min(train$height)
binw <- genislik / k

ggplot(train, aes(height)) +
  geom_histogram(binwidth = binw, fill = "seagreen4", colour = "black", alpha = 0.6) +
  ggtitle("Annelerin Boyları (cm) Histogramı")

Histogram, değişkenin sivri ve hafif sola çarpık dağılımı olduğunu göstermektedir.

weight değişkeni

k <- ceiling((log(2 * nrow(train))) + 1)
genislik <- max(train$weight) - min(train$weight)
binw <- genislik / k

ggplot(train, aes(weight)) +
  geom_histogram(binwidth = binw, fill = "dodgerblue4", colour = "black", alpha = 0.6) +
  ggtitle("Annelerin Ağırlıkları (kg) Histogramı")

Histogram, değişkenin sivri ve sağa çarpık dağılımı olduğunu göstermektedir.

6.3.1 Kategorik Değişken Düzeylerinde Histogram Grafikleri

Bu grafik için 3 değişkeni olan gestation kategorik değişkenini seçelim.

gestation ve bwt

bwt değişkeni, bebeklerin doğum ağırlıklarını kg cinsinden ifade eden değişkendi.

ggplot(train,aes(bwt,fill=gestation))+
  geom_histogram(binwidth=binw)+
  facet_grid(gestation~.)+
  scale_fill_manual(values=c("lightgreen","steelblue1","mediumorchid1"))

bwt değişkeni bebeklerin doğum kilolarını ifade etmekteydi.

Sağlıklı sürede doğan bebeklerin kilolarının ağırlıklı olarak 5’ten az olduğu görünmektedir.

Geç doğan bebeklerin kilolarının da ağırlıklı olarak 5’ten az olduğu görünmektedir.

Sağlıklı sürede ve geç doğan bebeklerde kilosu 5’ten fazla olan bebek bulunsa da erken soğan bebeklerde bulunmamaktadır. Zaten erken doğumda bebeğin 5 kilodan fazla doğması oldukça zor bir orandır.

gestation ve age

ggplot(train,aes(age,fill=gestation))+
  geom_histogram(binwidth=binw)+
  facet_grid(gestation~.)+
  scale_fill_manual(values=c("lightgreen","steelblue1","mediumorchid1"))

Sağlıklı sürede doğan bebeklerin anneleri çoğunlukla 20-30 yaş aralığında yer almaktadır. Annelerin yaşları en başta sağlıklı kabul ettiğimiz yaşlardan az veya fazla olsa da sağlıklı sürede doğum gerçekleştiği görünmektedir.

Diğer grafikleri kontrol ettiğimizde geç ve erken doğumlar da 20-30 yaş aralığında fazladır.

gestation ve height

ggplot(train,aes(height,fill=gestation))+
  geom_histogram(binwidth=binw)+
  facet_grid(gestation~.)+
  scale_fill_manual(values=c("lightgreen","steelblue1","mediumorchid1"))

Sağlıklı sürede doğan bebeklerin anneleri boyları yaklaşık 158-168 cm aralığında yer almaktadır. Diğer grafikleri kontrol ettiğimizde geç ve erken doğumlar da en çok bu aralıkta yer almaktadır.

gestation ve weight

ggplot(train,aes(weight,fill=gestation))+
  geom_histogram(binwidth=binw)+
  facet_grid(gestation~.)+
  scale_fill_manual(values=c("lightgreen","steelblue1","mediumorchid1"))

Annelerin kilolarının yorumu da hemen hemen diğer grafik yorumlarına benzer. Ancak burada dikkat etmemiz gereken bir nokta var.

Annelerin kiloları 100’ün üstüne çıksa bile sağlıklı sürede doğum gerçekleşmiştir. Geç ve erken doğumlar için bu görülmemektedir.

6.4 Yoğunluk Grafikleri

bwt değişkeni

ggplot(train,aes(bwt))+
  geom_density()+
  geom_density(alpha=.4,fill="turquoise")

Bebeklerin kilolarına baktığımızda 3-4 kg aralığında yoğunlaştığını görmekteyiz.

age değişkeni

ggplot(train,aes(age))+
  geom_density()+
  geom_density(alpha=.4,fill="yellow")

Annelerin yaşları 20-30 aralığında yoğunlaşmaktadır.

height değişkeni

ggplot(train,aes(height))+
  geom_density()+
  geom_density(alpha=.4,fill="springgreen")

Annelerin boyları 155-170 cm aralığında yoğunlaşmaktadır. Sola çarpıklık söz konusudur. Boyu 140 cm’den kısa anneler bunun sebebidir.

weight değişkeni

ggplot(train,aes(weight))+
  geom_density()+
  geom_density(alpha=.4,fill="slateblue3")

Annelerin kiloları 45-65 kg aralığında yoğunlaşmaktadır. Oldukça sağa çarpık bir dağılım vardır. Bu da bizlere, fazla kilosu olan annelerin bulunduğunu göstermektedir.

6.5 Histogram ve Yoğunluk Grafikleri

bwt değişkeni

ggplot(train,aes(bwt))+
  geom_histogram(aes(y=..density..), fill="white", color="black")+
  geom_density(alpha=.4,fill="turquoise")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Dağılımın sivri ancak normale yakın olduğu görünmektedir.

age değişkeni

ggplot(train,aes(age))+
  geom_histogram(aes(y=..density..), fill="white", color="black")+
  geom_density(alpha=.4,fill="yellow")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Dağılım sivri ve sağa çarpıktır.

height değişkeni

ggplot(train,aes(height))+
  geom_histogram(aes(y=..density..), fill="white", color="black")+
  geom_density(alpha=.4,fill="springgreen")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Dağılım oldukça sivridir ve sola çarpıktır. Boyu 1410 cm’den kısa anneler bunun sebebidir.

weight değişkeni

ggplot(train,aes(weight))+
  geom_histogram(aes(y=..density..), fill="white", color="black")+
  geom_density(alpha=.4,fill="slateblue3")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Sivri ve oldukça sağa çarpık bir dağılım vardır. Bu da bizlere, fazla kilosu olan annelerin bulunduğunu göstermektedir.

6.6 Box Plots

bwt değişkeni

ggplot(train, aes(y = bwt)) +
  geom_boxplot(fill = "aquamarine") +
  ggtitle("Doğum Ağırlığı (kg) Boxplot")

Grafiğe bakınca oldukça fazla uç değer olduğunu görmekte birlikte normale oldukça yakın olduğu yorumunu yapabiliriz. Ortancanın konumunu Q1 ve Q2’ye göre yorumlarsak neredeyse ortada görünmektedir. Bunun sebebi uç değerlerin her iki uçta da yer aldığından kaynaklanabilir. Ancak dönüşüm aşamasından sonra tekrar incelenecektir.

age değişkeni

ggplot(train, aes(y = age)) +
  geom_boxplot(fill = "violet") +
  ggtitle("Annelerin Yaşları Boxplot")

Dağılımın sağa çarpık olduğu box plot’tan da anlaşılmaktadır. Görünen yalnızca 1 adet uç değer bulunmaktadır.

height değişkeni

ggplot(train, aes(y = height)) +
  geom_boxplot(fill = "orangered") +
  ggtitle("Annelerin Boyları (cm) Boxplot")

Dağılım, normale oldukça yakındır. Ancak görünen 2 adet uç değer bulunmaktadır.

weight değişkeni

ggplot(train, aes(y = weight)) +
  geom_boxplot(fill = "mediumslateblue") +
  ggtitle("Annelerin Ağırlıkları (kg) Boxplot")

Dağılım normale yakın görünmekle birlikte oldukça fazla uç değer içermektedir.

6.6.1 Kategorik Değişken Düzeylerinde Box Plots

Bu grafik için 3 değişkeni olan gestation kategorik değişkenini seçelim.

gestation ve bwt

bwt değişkeni, bebeklerin doğum ağırlıklarını kg cinsinden ifade eden değişkendi.

ggplot(train, aes(x=gestation,y=bwt, fill=gestation))+
  geom_boxplot()+
  labs(title="Doğum Ağırlıkları İçin gestation Kutu Çizimi",
       x="gestation Kategorileri", y = "Doğum Ağırlıkları")+
  scale_fill_discrete(name = "gestation Kategorileri")+
  stat_summary(fun = median, geom="line", group= 1, color= "black", size = 1) 

Doğum ağırlıklarına ve gestation kategorilerine bakalım. gestation kategorileri early, healhty ve late idi. Bunlar bebeklerin anne karnında kaldıkları süreyi temsil ediyor. Yani aslında kendi içlerinde sıralılar.

Doğum ağırlığı arttıkça, bebeklerin anne karnında kalma süresini temsil eden değişkende de artış olduğunu görmekteyiz. Bu da aralarında ilişki olduğunu gösterir.

gestation ve age

ggplot(train, aes(x=gestation,y=age, fill=gestation))+
  geom_boxplot()+
  labs(title="Annelerin Yaşları İçin gestation Kutu Çizimi",
       x="gestation Kategorileri", y = "Annelerin Yaşları")+
  scale_fill_discrete(name = "gestation Kategorileri")+
  stat_summary(fun = median, geom="line", group= 1, color= "black", size = 1) 

Early’den Healthy’ye geçerken azalma olduğunu görmekteyiz. Yani, gestation kategorisi Early’den Healthy’ye arttıkça, annelerin yaşı azalmaktadır. Ancak Healthy’den Late kategorisine geçerken düz bir şekilde devam etmektedir. Bu da o kısımda ilişki olmadığını gösterir.

gestation ve height

ggplot(train, aes(x=gestation,y=height, fill=gestation))+
  geom_boxplot()+
  labs(title="Annelerin Boyları İçin gestation Kutu Çizimi",
       x="gestation Kategorileri", y = "Annelerin Boyları")+
  scale_fill_discrete(name = "gestation Kategorileri")+
  stat_summary(fun = median, geom="line", group= 1, color= "black", size = 1) 

Çizginin tüm kategorilerde düz devam ettiğini görmekteyiz. Bu da bize, annelerin boyları ile bebeklerin anne karnında kalma süreleri arasında ilişki olmadığını göstermektedir.

gestation ve weight

ggplot(train, aes(x=gestation,y=weight, fill=gestation))+
  geom_boxplot()+
  labs(title="Annelerin Ağırlıkları İçin gestation Kutu Çizimi",
       x="gestation Kategorileri", y = "Annelerin Ağırlıkları")+
  scale_fill_discrete(name = "gestation Kategorileri")+
  stat_summary(fun = median, geom="line", group= 1, color= "black", size = 1) 

Early’den Healthy’ye geçerken azalış, Healthy’den Late’e geçerken artış görünmektedir. Annelerin ağırlıkları ile bebeklerin anne karnında kalma süreleri arasında ilişki vardır.

6.6.2 Kategorik Değişken Düzeylerinde Box Plots (Kantiller ile)

Bu grafik için 3 değişkeni olan gestation kategorik değişkenini seçelim.

gestation ve bwt

ggplot(train, aes(x=gestation,y=bwt, fill=gestation)) +
  geom_boxplot(width=0.3)+
  stat_summary(fun.y = median, geom="line", group= 1, color= "blue", size = 1)+
  stat_summary(geom = 'line', linetype = "dashed",group=1,size = 1,fun.y = quantile, fun.args = list(probs = 0.25), position = position_dodge(0.75)) + 
  stat_summary(geom = 'line', group= 1,linetype = "dashed",size = 1, fun.y = quantile, fun.args = list(probs = 0.75), position = position_dodge(0.75)) 

Bebeklerin doğum ağırlıkları ile anne karnında kalma süreleri arasında ilişki bulunduğunu buradan da görmekteyiz. Q1 ve Q3 değerlerine bakıldığında onlarda da artış görünmektedir.

Erken doğumdan sağlıklı doğuma geçişi incelediğimizde; Q1’in Q3’e göre daha fazla arttığını gözlemlemekteyiz. Bu da bize, erken doğumdan sağlıklı doğuma geçerken 1. çeyreğin hızla arttığını göstermektedir. Bu da sağlıklı vakitte doğan bebeklerin ağırlıklarının, erken doğanlara göre (Q1 değerlerinin) hızla arttığını gösterir.

gestation ve age

ggplot(train, aes(x=gestation,y=age, fill=gestation)) +
  geom_boxplot(width=0.3)+
  stat_summary(fun.y = median, geom="line", group= 1, color= "blue", size = 1)+
  stat_summary(geom = 'line', linetype = "dashed",group=1,size = 1,fun.y = quantile, fun.args = list(probs = 0.25), position = position_dodge(0.75)) + 
  stat_summary(geom = 'line', group= 1,linetype = "dashed",size = 1, fun.y = quantile, fun.args = list(probs = 0.75), position = position_dodge(0.75)) 

Ortancalı boxplot yorumunda; erken doğum ile sağlıklı doğum arasında, az da olsa annelerin yaşları ile ilişki olduğunu ancak sağlıklı doğum ile geç doğum arasında olmadığını söylemiştik.

Q1 değerlerine bakarsak, erken doğumdan sağlıklı doğuma ve sağlıklı doğumdan geç doğuma geçerken çok az azaldığını görmekteyiz. Hatta neredeyse aynı gibi. Ancak Q3 değeri; erken doğumdan sağlıklı doğuma geçerken belli bir miktar azalmış, sağlıklı doğumdan geç doğuma geçerken de belli bir miktar artmıştır.

gestation ve height

ggplot(train, aes(x=gestation,y=height, fill=gestation)) +
  geom_boxplot(width=0.3)+
  stat_summary(fun.y = median, geom="line", group= 1, color= "blue", size = 1)+
  stat_summary(geom = 'line', linetype = "dashed",group=1,size = 1,fun.y = quantile, fun.args = list(probs = 0.25), position = position_dodge(0.75)) + 
  stat_summary(geom = 'line', group= 1,linetype = "dashed",size = 1, fun.y = quantile, fun.args = list(probs = 0.75), position = position_dodge(0.75)) 

Annelerin boyları ile bebeklerin anne karnında kalma süreleri arasında ilişki olmadığını söylemiştik. Grafiğe bakıldığında Q1 ve Q3 değerleri de paralel gitmektedir. Yani yorumumuz desteklenmektedir. Yalnızca sağlıklı doğumdan geç doğuma geçerken Q1 değerinde artış görünmektedir. Bunun sebebi Heatlhy’de yer alan uç değerler olabilir.

gestation ve weight

ggplot(train, aes(x=gestation,y=weight, fill=gestation)) +
  geom_boxplot(width=0.3)+
  stat_summary(fun.y = median, geom="line", group= 1, color= "blue", size = 1)+
  stat_summary(geom = 'line', linetype = "dashed",group=1,size = 1,fun.y = quantile, fun.args = list(probs = 0.25), position = position_dodge(0.75)) + 
  stat_summary(geom = 'line', group= 1,linetype = "dashed",size = 1, fun.y = quantile, fun.args = list(probs = 0.75), position = position_dodge(0.75)) 

Annelerin ağırlıkları ile bebeklerin anne karnında kalma süreleri arasında ilişki vardı. Early, Healthy ve Late aralarında Q1 ve Q3 değerlerinin de ilişki ile benzer şekilde azalıp arttığını görmekteyiz.

6.6.3 2 Kategorik Değişken Düzeylerinde Box Plots

bwt & gestation & smoke

ggplot(train, aes(x = gestation, y = bwt, fill = smoke)) +
  geom_boxplot(position = position_dodge(width = 0.9)) +
  stat_summary(fun = median,geom = 'line',
               aes(group = smoke, colour = smoke),size=1,
               position = position_dodge(width = 0.9))

Sigara içme durumunu kırılım olarak aldık.

Çizgileri incelediğimizde kesişim olmadığını görmekteyiz. Bu da ilişki olmadığı anlamına gelmektedir. Erken doğumdan sağlıklı doğuma geçen çizgilerde paralellik var. Orada ilişki yoktur. Sağlıklı doğumdan geç doğuma geçerken de kesişim yoktur bu nedenle ilişki düşünülmez. Ancak tam bir paralellik söz konusu olmadığı için tam olarak ilişki olamaz da diyemeyiz.

age & gestation & smoke

ggplot(train, aes(x = gestation, y = age, fill = smoke)) +
  geom_boxplot(position = position_dodge(width = 0.9)) +
  stat_summary(fun = median,geom = 'line',
               aes(group = smoke, colour = smoke),size=1,
               position = position_dodge(width = 0.9))

Grafiği incelediğimizde çizgilerin üst üste geldiğini görmekteyiz. Kesişim olup olmadığını net olarak göremiyoruz. Ancak kategorik düzeylerde boxplot incelemesi yaptığımızda, age ve gestation değişkenlerinin ilişkilerinin olmadığını gözlemlemiştik (erken doğumdan sağlıklı doğuma geçerken çok az miktarda var gibiydi.). Bu sebeple, net olarak çizgileri ayırt edemediğimiz için böyle bir yorumda bulunabiliriz.

height & gestation & smoke

ggplot(train, aes(x = gestation, y = height, fill = smoke)) +
  geom_boxplot(position = position_dodge(width = 0.9)) +
  stat_summary(fun = median,geom = 'line',
               aes(group = smoke, colour = smoke),size=1,
               position = position_dodge(width = 0.9))

weight & gestation & smoke

ggplot(train, aes(x = gestation, y = weight, fill = smoke)) +
  geom_boxplot(position = position_dodge(width = 0.9)) +
  stat_summary(fun = median,geom = 'line',
               aes(group = smoke, colour = smoke),size=1,
               position = position_dodge(width = 0.9))

6.7 Q-Q Plots

Kategorik değişkenler için elbette bakılmayacaktır.

bwt değişkeni

qqnorm(train$bwt, col = "darkblue", main = "Doğum Ağırlığı (kg) QQ Plot")
qqline(train$bwt, col = "red")

bwt değişkeninin normale oldukça yakın bir dağılımının olduğu yorumunda bulunabiliriz. Gözlemler eğriye oldukça yakınlar. Ancak baş ve uç kısımlarındaki değerler farklılığa yol açabilir. Bu durum uç değerlerden kaynaklı olabilir. Ancak histogram ve boxplot da göz önünde bulundurulunda bwt değişkeninin normale yakın olduğunu söyleyebiliriz.

age değişkeni

qqnorm(train$age, col = "darkblue", main = "Annelerin Yaşları QQ Plot")
qqline(train$age, col = "red")

Q-Q Grafiğinde öncelikle gürültü göze çarpmaktadır. Bu gürültünün sebebi uç değerler olabilir. Dönüşüm uygulamasından sonra tekrar kontrol sağlanacaktır.

height değişkeni

qqnorm(train$height, col = "darkblue", main = "Annelerin Boyları (cm) QQ Plot")
qqline(train$height, col = "red")

Q-Q Grafiğinde öncelikle gürültü göze çarpmaktadır. Bu gürültünün sebebi uç değerler olabilir. Dönüşüm uygulamasından sonra tekrar kontrol sağlanacaktır.

weight değişkeni

qqnorm(train$weight, col = "darkblue", main = "Annelerin Ağırlıkları (kg) QQ Plot")
qqline(train$weight, col = "red")

Q-Q Grafiği, dağılımın hafif kuyruklu olduğu izlenimini vermektedir. Histogramdan da gördüğümüz gibi sağa çarpıklık olduğunu söyleyebiliriz. Ayrıca potansiyel uç değer/değerler de vardır.

6.8 Bar Plots

gestation değişkeni

library(ggplot2)

ggplot(train,aes(gestation))+
  geom_bar()

ggplot(train,aes(gestation))+
  geom_bar(aes(fill=gestation))+
  xlab("Doğum Süreleri") + ylab("Frekanslar") +
  ggtitle("Doğum Süreleri Dağılımı") +
  scale_fill_discrete(name = "Doğum Süreleri")+
  xlab("Doğum Süreleri Kategorileri")+
  ylab("Sıklıklar")

Gerçekleşen doğumlarda en çok normal günler içinde (Healthy) süren gebelikler olduğunu görürüz.

parity değişkeni

ggplot(train,aes(parity))+
  geom_bar()

ggplot(train,aes(parity))+
  geom_bar(aes(fill=parity))+
  xlab("Önceden Doğum Yapma Durumu") + ylab("Frekanslar") +
  ggtitle("Önceden Doğum Yapma Durumu Dağılımı") +
  scale_fill_discrete(name = "Önceden Doğum Yapma Durumu")+
  xlab("Önceden Doğum Yapma Durumu Kategorileri")+
  ylab("Sıklıklar")

Önceden doğum yapmayan annelerin fazla olduğunu görmekteyiz.

smoke değişkeni

ggplot(train,aes(smoke))+
  geom_bar()

ggplot(train,aes(smoke))+
  geom_bar(aes(fill=smoke))+
  xlab("Sigara İçme Durumu") + ylab("Frekanslar") +
  ggtitle("Sigara İçme Durumu Dağılımı") +
  scale_fill_discrete(name = "Sigara İçme Durumu")+
  xlab("Sigara İçme Durumu Kategorileri")+
  ylab("Sıklıklar")

Sigara içen annelerin sayısı daha fazladır.

6.8.1 2 Kategorili Bar Plots

gestation değişkeni, doğum sürelerini ifade etmekteydi. Bu değişkeni bağımlı gibi düşünerek grafikleri oluşturalım.

gestation ve parity

ggplot(train,aes(gestation, fill=parity))+
  geom_bar(position=position_dodge())+
  ggtitle("Doğum Sürelerinin Önceden Doğum Yapma Dağılımı")+
  xlab("Doğum Sürelerileri Kategori")+
  ylab("Sıklıklar")+
  scale_fill_discrete(name = "Önceden Doğum Yapma")+
  theme(axis.title.x = element_text(color="black", face="bold", size=8),
        axis.title.y = element_text(color="black", face="bold",size=8),
        plot.title = element_text(hjust = 0.2,color="black", face="bold", size=14),
        legend.title = element_text(colour="black",face="bold",size=8))

ggplot(train, aes(gestation, fill = parity)) + 
  geom_bar() + 
  geom_text(aes(label=..count..),stat="count",position=position_stack(0.8))

Erken doğan bebeklerin annelerinin; önceden doğum yapmayanların, önceden doğum yapanlara oranının daha fazla olduğunu görmekteyiz.

Sağlıklı sürede doğan bebeklerin annelerinin; önceden doğum yapmayanların, önceden doğum yapanlara oranının yaklaşık 3 kat fazla olduğunu görmekteyiz.

Geç doğan bebeklerin annelerinin; önceden doğum yapmayanların, önceden doğum yapanlara oranının daha fazla olduğunu görmekteyiz.

gestation ve smoke

ggplot(train,aes(gestation, fill=smoke))+
  geom_bar(position=position_dodge())+
  ggtitle("Doğum Sürelerinin Sigara İçme Dağılımı")+
  xlab("Doğum Sürelerileri Kategori")+
  ylab("Sıklıklar")+
  scale_fill_discrete(name = "Sigara İçme")+
  theme(axis.title.x = element_text(color="black", face="bold", size=8),
        axis.title.y = element_text(color="black", face="bold",size=8),
        plot.title = element_text(hjust = 0.2,color="black", face="bold", size=14),
        legend.title = element_text(colour="black",face="bold",size=8))

Erken doğan bebeklerin annelerinin; sigara içmeyenlerinin, sigara içenlere oranının daha fazla olduğunu görmekteyiz.

Sağlıklı sürede doğan bebeklerin annelerinin; sigara içmeyenlerinin, sigara içenlere oranının daha fazla olduğunu görmekteyiz.

Geç doğan bebeklerin annelerinin; sigara içmeyenlerinin, sigara içenlere oranının daha fazla olduğunu görmekteyiz.

6.8.1.1 2 Kategorili Toplamsal Bar Plots

gestation ve parity

ggplot(train, aes(gestation, fill = parity)) + 
  geom_bar() + 
  geom_text(aes(label=..count..),stat="count",position=position_stack(0.8))

Erken doğan bebeklerin annelerinin; önceden doğum yapmayanların sayısı 61, önceden doğum yapanların sayısısnın 14 olduğunu görmekteyiz. Erken doğan bebeklerin annelerinin; önceden doğum yapmayanların, önceden doğum yapanlara oranı yaklaşık 4 kat fazladır.

Sağlıklı sürede doğan bebeklerin annelerinin; önceden doğum yapmayanların sayısı 599, önceden doğum yapanların sayısının 208 olduğunu görmekteyiz. Sağlıklı sürede doğan bebeklerin annelerinin; önceden doğum yapmayanların, önceden doğum yapanlara oranı yaklaşık 3 kat fazladır.

Geç doğan bebeklerin annelerinin; önceden doğum yapmayanların sayısı 74, önceden doğum yapanların sayısının 34 olduğunu görmekteyiz. Geç doğan bebeklerin annelerinin; önceden doğum yapmayanların, önceden doğum yapanlara oranı yaklaşık 2 kat fazladır.

gestation ve smoke

ggplot(train, aes(gestation, fill = smoke)) + 
  geom_bar() + 
  geom_text(aes(label=..count..),stat="count",position=position_stack(0.8))

Erken doğan bebeklerin annelerinin; sigara içmeyenlerinin sayısı 48, sigara içenlerin sayısısnın 27 olduğunu görmekteyiz. Erken doğan bebeklerin annelerinin; sigara içmeyenlerinin, sigara içenlere oranının yaklaşık 2 kat fazladır.

Sağlıklı sürede doğan bebeklerin annelerinin; sigara içmeyenlerinin sayısı 474, sigara içenlerin sayısının 333 olduğunu görmekteyiz. Sağlıklı sürede doğan bebeklerin annelerinin; sigara içmeyenlerinin, sigara içenlere oranı daha fazladır.

Geç doğan bebeklerin annelerinin; sigara içmeyenlerinin sayısı 69, sigara içenlerin sayısının 39 olduğunu görmekteyiz. Geç doğan bebeklerin annelerinin; sigara içmeyenlerinin, sigara içenlere oranının yaklaşık 2 kat fazladır.

6.8.1.2 2 Kategorili Yüzdesel Bar Plots

gestation ve parity

library(dplyr)
tra_pct <- train %>% group_by(gestation, parity) %>%
  dplyr::summarise(count=n()) %>%
  mutate(pct=round(count/sum(count),2))
## `summarise()` has grouped output by 'gestation'. You can override using the
## `.groups` argument.
ggplot(tra_pct, aes(gestation, pct, fill = parity)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(pct)), position = position_stack(vjust = .5))+
  scale_y_continuous(labels = scales::percent)

Erken doğan bebeklerin annelerinin; önceden doğum yapmayanların oranı %81, önceden doğum yapanların oranı %19’dur.

Sağlıklı sürede doğan bebeklerin annelerinin; önceden doğum yapmayanların oranı %73, önceden doğum yapanların oranı %26’dır.

Geç doğan bebeklerin annelerinin; önceden doğum yapmayanların oranı %69, önceden doğum yapanların oranı %31’dir.

gestation ve smoke

library(dplyr)
tra_pct <- train %>% group_by(gestation, smoke) %>%
  dplyr::summarise(count=n()) %>%
  mutate(pct=round(count/sum(count),2))
## `summarise()` has grouped output by 'gestation'. You can override using the
## `.groups` argument.
ggplot(tra_pct, aes(gestation, pct, fill = smoke)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(pct)), position = position_stack(vjust = .5))+
  scale_y_continuous(labels = scales::percent)

Erken doğan bebeklerin annelerinin; sigara içmeyenlerinin oranı %64, sigara içenlerin oranı %36’dır.

Sağlıklı sürede doğan bebeklerin annelerinin; sigara içmeyenlerinin oranı %59, sigara içenlerin oranı %41’dir.

Geç doğan bebeklerin annelerinin; sigara içmeyenlerinin oranı %64, sigara içenlerin oranı %36’dır.

6.9 Pie Charts

gestation değişkeni

library(plotly)
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:Hmisc':
## 
##     subplot
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
cross<-as.data.frame(prop.table(table(train$gestation))) 
colnames(cross)[1] <- "gestation"
plot_ly(cross, labels = ~gestation, values = ~Freq, type = 'pie')%>% layout(title ='Doğum Süreleri Dağılımı')

Bebeklerinin doğum sürelerinin %81.5 sağlıklı, %10.9 geç doğum ve %7.58 erken doğum olduğu görünmektedir.

parity değişkeni

library(plotly)
cross<-as.data.frame(prop.table(table(train$parity))) 
colnames(cross)[1] <- "parity"
plot_ly(cross, labels = ~parity, values = ~Freq, type = 'pie')%>% layout(title ='Annelerin Doğum Bilgisi Dağılımı')

Annelerin %74.1’i daha önceden doğum yapmayanlar, %25.9’u ise önceden doğum yapanlardan oluşmaktadır.

smoke değişkeni

library(plotly)
cross<-as.data.frame(prop.table(table(train$smoke))) 
colnames(cross)[1] <- "smoke"
plot_ly(cross, labels = ~smoke, values = ~Freq, type = 'pie')%>% layout(title ='Annelerin Sigara Dağılımı')

Annelerin %59.7’si sigara içmeyenler, %40.3’ü ise sigara içenlerden oluşmaktadır.

6.10 Scatter Plot

Saçılım çizimi, iki nicel değişken arası ilişki ve dağılımı verir. Bağımlı değişkenimiz bebeklerin doğum ağırlıkları (bwt) olduğu için diğer değişkenler ile arasındaki ilişki bizim için önemlidir.

loess: yerel olarak ağırlıklandırılmış regresyon x ile y arası eğilimin nasıl oldugunu daha iyi gösterir. Aralarındaki örüntüye göre eğri geçirir. Bu sebeple method olarak loess’i kullanacağız.

bwt ve age

library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ tibble  3.1.8     ✔ purrr   1.0.0
## ✔ tidyr   1.2.1     ✔ stringr 1.5.0
## ✔ readr   2.1.3     ✔ forcats 0.5.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ psych::%+%()       masks ggplot2::%+%()
## ✖ psych::alpha()     masks ggplot2::alpha()
## ✖ plotly::filter()   masks dplyr::filter(), mice::filter(), stats::filter()
## ✖ dplyr::lag()       masks stats::lag()
## ✖ purrr::lift()      masks caret::lift()
## ✖ dplyr::src()       masks Hmisc::src()
## ✖ dplyr::summarize() masks Hmisc::summarize()
ggplot(train, aes(age,bwt))+
  geom_point(size=2,shape=21,stroke=1,color="dodgerblue1", fill="white")+
  geom_smooth(method = "loess", col="darkblue",se = FALSE)
## `geom_smooth()` using formula = 'y ~ x'

bwt değişkeni bebeklerin doğum ağırlıklarını ifade etmekteydi. Annelerin yaşları arttıkça bebeklerin doğum ağırlıklarının değişkeninin pek de değişmediğini gözlemleriz.

bwt ve height

library(tidyverse)
ggplot(train, aes(height,bwt))+
  geom_point(size=2,shape=21,stroke=1,color="dodgerblue1", fill="white")+
  geom_smooth(method = "loess", col="darkblue",se = FALSE)
## `geom_smooth()` using formula = 'y ~ x'

Annelerin boyları 140 cm’den 150 cm’e doğru arttıkça bebeklerin doğum ağırlıklarında azalma görünmüştür. Annelerin boyları 150 cm’den sonra arttıkça bu sefer bebeklerin ağırlıklarında da artış gözlemlenmiştir.

bwt ve weight

library(tidyverse)
ggplot(train, aes(weight,bwt))+
  geom_point(size=2,shape=21,stroke=1,color="dodgerblue1", fill="white")+
  geom_smooth(method = "loess", col="darkblue",se = FALSE)
## `geom_smooth()` using formula = 'y ~ x'

Yoğunluk grafiğinde “Annelerin kiloları 45-65 kg aralığında yoğunlaşmaktadır.” yorumunu yapmıştır. Yukarıdaki grafikte de benzeri bir yorumu (daha doğru aralıklar ile) yapabiliriz.

Annelerin ağırlıkları yaklaşık 55’e doğru artarken bebeklerin ağırlıklarında da artış görünmektedir. Ancak annelerin ağırlıkları 55’den sonra artmaya devam ederken bebeklerin ağırlıkları için net bir yorum yapılamaz. Hemen hemen düz bir doğru ile devam eder. Annenin kilosu 90’ı geçip artmaya devam ederken de bebeklerin ağırlıklarında ufak artışlar görünmektedir.

6.11 İkili gestation Kırılımında Scatter Plots

gestation değişkeni bebeklerin anne karnında kalma sürelerini gösteren değişkendi. gestation değişkeni kırılımı ile scatter plotları inceleyelim.

bwt & age & gestation

ggplot(train, aes(age,bwt, color=gestation, shape=gestation))+
  geom_point(size=3,alpha=0.6)

4 kilo ve üzeri bebeklerde erken doğuma oldukça az rastlandığını görmekteyiz. Zaten erken doğan bebeklerde kilolarına 4 ve üzerine rastlanması, diğer sürelere göre daha az mümkün duruyor. 2 kilo ve altında olan bebeklerde de erken doğum olduğunu görmekteyiz. Bu da bebeklerin gelişim süreci ile ilgili olarak yorumlanabilir.

Annelerin yaşları 40’ı geçtikten sonra genel olarak rastlanana doğum da sağlıklı sürede gerçekleşen doğum olarak yorumlanabilir.

bwt & height & gestation

ggplot(train, aes(height,bwt, color=gestation, shape=gestation))+
  geom_point(size=3,alpha=0.6)

Grafiğin en sol kısmında yer alan gözlemler, potansiyel aykırı değer olarak yorumlanabilir. Dikkat çeken bir diğer nokta ise annelerin boylarının 180 cm ve üzeri olduğu yerlerde yalnızca sağlıklı sürede olan gebelik sürelerinin yer almasıdır.

bwt & weight & gestation

ggplot(train, aes(weight,bwt, color=gestation, shape=gestation))+
  geom_point(size=3,alpha=0.6)

İlk bakışta, grafiğin en sağında yer alan gözlemin potansiyel aykırı değer olabileceğini düşünebiliriz. Grafikte yoğunluk, annelerin ağırlıklarının 40-70 kg olduğu alandadır. Annelerin kilosu 90’ı geçtikten sonra geç doğuma rastlanılmamıştır. Ayrıca, annelerin kilosu arttıkça, erken doğumların azaldığı yorumunda bulunabiliriz.

6.11.1 Gözlem Numaraları ile Scatter Plots

bwt ve age

ggplot(train,aes(x=age,y=bwt))+
  geom_point(size=1)+
  geom_text(label=rownames(train),nudge_x=0.25,nudge_y=0.25, check_overlap=T)+
  geom_smooth(method=lm,col="red",se=FALSE)
## `geom_smooth()` using formula = 'y ~ x'

Dağılım oldukça yoğun olduğu için potansiyel aykırı değerlerin gözlem numaraları tam olarak belli olmuyor. Ancak en solda yer alan 505. gözlem, 913. ve dağılımın alt-üst ksıımlarında kalan gözlemler de potansit-yel aykırı değer olabilirler. Bu kadar fazla potansiyel aykırı değer düşünmemizin sebebi, boxplotlarda da çok fazla potansiyel uç değerlere rastlamamızdır.

bwt ve height

ggplot(train,aes(x=height,y=bwt))+
  geom_point(size=1)+
  geom_text(label=rownames(train),nudge_x=0.25,nudge_y=0.25, check_overlap=T)+
  geom_smooth(method=lm,col="red",se=FALSE)
## `geom_smooth()` using formula = 'y ~ x'

En çok göze çarpan değer 435 (ve hemen sağ altında kalan diğer gözlem) potansiyel aykırı değer olabilir. Yine grafiğin alt ve üstünde seyrek değerlere rastlanmaktadır.

bwt ve weight

ggplot(train,aes(x=weight,y=bwt))+
  geom_point(size=1)+
  geom_text(label=rownames(train),nudge_x=0.25,nudge_y=0.25, check_overlap=T)+
  geom_smooth(method=lm,col="red",se=FALSE)
## `geom_smooth()` using formula = 'y ~ x'

En çok göze çarpan değer olan 150. gözlem potansiyel aykırı değerdir.

Grafiklerin çarpıklıkları da yorumlamamız için belirsizlik yaratmaktadır. Dönüşüm uyglandıktan sonmra bu durumlar tekrar gözden geçirilecektir.

6.11.2 Gözlem Numaraları ile İnteraktif Scatter Plots

Potansyel aykırı değer olabilir, şeklinde yorumladığımız gözlemlere bu grafikler ile daha detaylı inceleme yapabiliriz.

bwt & age & gestation

library(plotly)
d_plot <- ggplot(train, aes(age, bwt, fill=gestation, shape=gestation)) +
  geom_point(position = position_jitter(width= 0.2, height = 0), size = 2)

ggplotly(d_plot)

Potansiyel aykırı değer olabilir diye yorumladığımız gözlemlere göz atalım. 505. gözlemde; annenin yaşı 15’dir. Diğer değişken özellikleri sağlıklı kabul ettiğimiz sınırlarda olsa bile annenin yaşının küçüklüğü, aykırı değerliğe sebep olabilir. 913. ve hemen altındaki gözlemlerde; erken doğum olduğunu görmekteyiz. Bu da aykırı değerliğe sebep olabilir.

bwt & height & gestation

library(plotly)
d_plot <- ggplot(train, aes(height, bwt, fill=gestation, shape=gestation)) +
  geom_point(position = position_jitter(width= 0.2, height = 0), size = 2)

ggplotly(d_plot)
  1. ve hemen sağ altındaki değer için potansiyel aykırı değer yorumunda bulunmuştuk. Annelerin boylarının kısa olması, aykırı değerliğe sebep olmuş olabilir.

bwt & weight & gestation

library(plotly)
d_plot <- ggplot(train, aes(weight, bwt, fill=gestation, shape=gestation)) +
  geom_point(position = position_jitter(width= 0.2, height = 0), size = 2)

ggplotly(d_plot)
  1. gözlem için potansiyel aykırı değer yorumunu yapmıştık. Annein ağırlığının fazla olması buna sebep olabilir.

6.12 İkili - Dagılım + Histogram Grafikleri

bwt ve age

library(ggExtra)
gr <- ggplot(train,aes(x=age,y=bwt))+
  geom_point()+
  geom_text(size=3,label=rownames(train),nudge_x=0.25,
            nudge_y=0.25, check_overlap=T)+
  geom_smooth(method=loess,col="yellow", se=FALSE)

ggMarginal(gr,type="histogram",fill="lightseagreen")
## `geom_smooth()` using formula = 'y ~ x'
## `geom_smooth()` using formula = 'y ~ x'

Annelerin yaşları 40’ı geçtikten sonra, yaşları artarken bebeklerin doğum ağırlıklarında hafif bir artış gözlemlemiştik. Kontrol ettiğimizde annelerin yaşlarının histogram grafiğinin de sağa çarpık olduğunu görmekteyiz. Bebeklerin doğum ağırlıklarının histogramı ise normale yakındı. Annelerin yaşları arttıkça bebeklerinin ağırlığının pek de değişmemesinin sebebi bu olabilir.

bwt ve height

library(ggExtra)
gr <- ggplot(train,aes(x=height,y=bwt))+
  geom_point()+
  geom_text(size=3,label=rownames(train),nudge_x=0.25,
            nudge_y=0.25, check_overlap=T)+
  geom_smooth(method=loess,col="violetred1", se=FALSE)

ggMarginal(gr,type="histogram",fill="lightseagreen")
## `geom_smooth()` using formula = 'y ~ x'
## `geom_smooth()` using formula = 'y ~ x'

Annelerin boylarının histogramında sola çarpıklık var. Annelerin boylarının 150 cm’e kadar olan bölgede (150 cm’e kadar artarken) bebeklerin ağırlıklarının azalmasının sebebi bu olabilir.

bwt ve weight

library(ggExtra)
gr <- ggplot(train,aes(x=weight,y=bwt))+
  geom_point()+
  geom_text(size=3,label=rownames(train),nudge_x=0.25,
            nudge_y=0.25, check_overlap=T)+
  geom_smooth(method=loess,col="green", se=FALSE)

ggMarginal(gr,type="histogram",fill="lightseagreen")
## `geom_smooth()` using formula = 'y ~ x'
## `geom_smooth()` using formula = 'y ~ x'

Annelerin ağırlıklarının histogramına baktığımızda 150. gözlemin aykırı/uç değer olma ihtimalinin arttığını görmekteyiz.

6.13 Kabarcık Çizimi

bwt & age & height

library(ggplot2)
ggplot(train, aes(age,bwt, color=height, size=height))+
  geom_point(alpha=0.5, stroke=2)+
  scale_size(range = c(1, 8))+
  scale_color_gradient(low = "blue", high = "lightpink")

Kabarcık çizimi, saçılım çiziminin farklı bir versiyonudur. Annelerin yaşlarına karşı, bebeklerin doğum ağırlıklarını, annelerin boylarına göre çizdirdik. En düşük boylar mavi, en yüksek boylar pembe ile gösterilmektedir. Annelerin yaşları arttıkça bebeklerin doğum ağırlığında net bir değişim gözlemlenmemiştir.

bwt & age & weight

library(ggplot2)
ggplot(train, aes(age,bwt, color=weight, size=weight))+
  geom_point(alpha=0.5, stroke=2)+
  scale_size(range = c(1, 8))+
  scale_color_gradient(low = "blue", high = "lightpink")#scale_color_gradientn(colours = rainbow(5))

Annelerin yaşlarına karşı, bebeklerin doğum ağırlıklarını, annelerin kilolarına göre çizdirdik. En düşük kilolar mavi, en yüksek kilolar pembe ile gösterilmektedir. Annelerin yaşları arttıkça bebeklerin doğum ağırlığında net bir değişim gözlemlenmemiştir.

bwt & height & weight

library(ggplot2)
ggplot(train, aes(height,bwt, color=weight, size=weight))+
  geom_point(alpha=0.5, stroke=2)+
  scale_size(range = c(1, 8))+
  scale_color_gradient(low = "blue", high = "lightpink")#scale_color_gradientn(colours = rainbow(5))

Annelerin boylarına karşı, bebeklerin doğum ağırlıklarını, annelerin kilolarına göre çizdirdik. En düşük kilolar mavi, en yüksek kilolar pembe ile gösterilmektedir. En soldaki 2 gözlem, potansiyel uç değer olarak yorumlanabilir. Annelerin boyları arttıkça kilolarının azaldığını görmekteyiz (renk maviden pembeye doğru geçiyor).

6.14 Altıgen Çizim

bwt ve age

library(hexbin)
ggplot(train,aes(x=age,y=bwt))+
  geom_hex(bins=20, color = "white")+
  scale_fill_gradient(low="mistyrose2", high="violetred3")

Gözlemler gruplanarak açıktan koyuya doğru, içerdeki gözlem sayısına göre grafik haline getirilmiştir. Kontrol ettiğimizde 20-30 yaş arasında yoğunluk olduğunu görmekteyiz.

table(train$age)
## 
## 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 
##  1  7 13 48 44 56 64 72 74 55 74 73 56 54 47 34 32 35 25 25 20 25 14 17 10  7 
## 42 43 44 
##  3  4  1

Annelerin yaşlarını yukarıdaki şekilde tablo ile incelersek 19-35 yaş aralığında frekansların yüksek olduğunu buradan da teyit edebiliriz.

bwt ve height

library(hexbin)
ggplot(train,aes(x=height,y=bwt))+
  geom_hex(bins=20, color = "white")+
  scale_fill_gradient(low="rosybrown2", high="darkorchid4")

Yoğunluğun, annelerin boylarının 150-170 cm aralıklarındayken olduğunu görebiliriz. Aralardaki dikey boşluklar, scatter plotta da gözlemlenmişti.

bwt ve weight

library(hexbin)
ggplot(train,aes(x=weight,y=bwt))+
  geom_hex(bins=20, color = "white")+
  scale_fill_gradient(low="peachpuff2", high="tan4")

Scatter plotta ve yoğunluk grafiğinde, “Annelerin kiloları 45-65 kg aralığında yoğunlaşmaktadır.” yorumunu yapmıştır. Yukarıdaki grafikte de aynı yorumu yapabiliriz. En sağda ise potansiyel uç/aykırı değer vardır.

6.15 Kontür Çizimi

bwt ve age

ggplot(train, aes(x=age, y=bwt) ) +
  stat_density_2d(aes(fill = ..level..), geom = "polygon", colour="white")

Beyaz çizgiler ilişkiyi göstermektedir. Çizgilerin birbirine yakın olduğu ve elipsi andırdığı yerlerde ilişki vardır. Açılmalar ise değişen varyans olabileceğini gösterir. En çok en sağ kısımda göze çarpmaktadır.

bwt ve height

ggplot(train, aes(x=height, y=bwt) ) +
  stat_density_2d(aes(fill = ..level..), geom = "polygon", colour="white")

bwt ve weight

ggplot(train, aes(x=weight, y=bwt) ) +
  stat_density_2d(aes(fill = ..level..), geom = "polygon", colour="white")

6.16 Saçılım Matrisleri

6.16.1 Yoğunluk & Saçılım & Correlation

bwt değişkeni bağımlı değişken olduğu için onu yazarken en sona yazmalıyız.

cor_train <- train[,c(4,5,6,1)]

library(GGally)
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
## 
## Attaching package: 'GGally'
## The following object is masked from 'package:funModeling':
## 
##     range01
cor(cor_train)
##               age     height    weight        bwt
## age    1.00000000 0.02270474 0.1271443 0.03603991
## height 0.02270474 1.00000000 0.4495866 0.19409388
## weight 0.12714428 0.44958656 1.0000000 0.15923705
## bwt    0.03603991 0.19409388 0.1592370 1.00000000
plot(cor_train)

ggpairs(cor_train)

Grafikte otomatik olarak pearson korelasyonu kullanılmıştır. Pearson’ın varsayımlarında doğrusallık ve normallik vardır. Bunlar tam olarak sağlanmadığı için korelasyonları yorumlamak şuan için doğru olmaz.

6.17 Sacılım matrisi & Histogram & Yogunluk & Duzlestırme & Korelasyon

library(PerformanceAnalytics)
## Zorunlu paket yükleniyor: xts
## Zorunlu paket yükleniyor: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## 
## Attaching package: 'xts'
## The following objects are masked from 'package:dplyr':
## 
##     first, last
## 
## Attaching package: 'PerformanceAnalytics'
## The following objects are masked from 'package:moments':
## 
##     kurtosis, skewness
## The following object is masked from 'package:graphics':
## 
##     legend
cor_train <- train[,c(4,5,6,1)]

chart.Correlation(cor_train, histogram=TRUE, pch=19)

Sayıların boyut ve kalınlıklarına göre ilişkinin kuvveti yorumlanır. Örneğin 0.44 en kalın ve en büyük olandır. Ancak korelasyon az önceki sebeplerden ötürü yorumlanmaz.

O halde farklı methodlar deneyelim.

kendall methodu kullanalım.

cor_train <- train[,c(4,5,6,1)]

chart.Correlation(cor_train, histogram=TRUE, pch=19, method = "kendall")

Histogramlara bakarsak; bwt normale oldukça yakın, weight ve age değişkenlerinde sağa çarpıklık, height değişkeninde ise sola çarpıklık var.

Saçılımlara loess eğrisi eklenmiştir. Daha önce de yorumlandıkları gibidir.

Korelasyonlara bakarsak; Bebeklerin doğum ağırlıkları ile en kuvvetli ilişki annelerin boyları ve kiloları arasında bulunmuştur.

Annelerin boyları ve kiloları arasında kendi içlerinde de ilişki vardır.

Bebekleri doğum ağırlıkları ile annelerin yaşları arasında oldukça az ilişki vardır.

Boxplotları da ekleyelim.

GGally::ggpairs(train[,c(1,4,5,6,2)], aes(color = gestation))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

gestation değişkeni, bebeklerin doğuma kadar geçen sürelerinin yer aldığı ve sonradan kategorik hale getirdiğimiz değişkendi. gestation kırılımında inceleme yapacağız.

bwt değişkeni için histograma baktığımızda, sağlıklı sürede doğa bebeklerin dağılımının, diğerlerine göre sivri olduğunu görmekteyiz. En basık dağılım, geç doğan bebeklere ait gibi görünmektedir. Ayrıca, yine geç doğan bebeklerde hafif bir çok tepelilik var gibi görünüyor. Boxplota bakarsak bebeklerin doğum ağırlıkları arttıkça doğum süreleri de artmaktadır. Bu artış erken doğumdan sağlıklı doğuma geçerken oldukça hızlı ancak sağlıklıdan geç doğuma geçerken daha yavaş görünmektedir. Bebeklerin doğum kiloları incelendiği için oldukça doğal bir durumdur.Ayrıca sağlıklı sürede doğan bebeklerde oldukça fazla uç değer vardır.

age değişkeni için histogramlar benzerdir. Yine sağlıklı sürede doğan bebeklerde hafif sivrilik görünmektedir. Hepsinde sağa çarpıklık var gibi gözükmektedir. Boxplotların ortancaları birbirine oldukça yakındır. Bu da aralarında çok az ilişki olduğunu gösterir. Yine sağlıklı doğan bebeklerde uç değerler vardır.

height değişkeninde ise 3 histogramda da sola çarpıklık gözükmektedir. Boxplotlara bakıldığında iişki yok denilebilecek kadar az gibi görünmektedir. Sağlıklı sürede doğan bebeklerde yine uç değerler vardır.

weight değişkeninde tüm histogramlar sağa çarpık gibi görünüyor. Ancak en sivri dağılım bu sefer erken doğan bebeklerde gibi görünmektedir. Boxplotlara bakıldığında tüm kategorierde uç değerler vardır. Erken doğumdan sağlıklı doğuma geçerken annelerin kilolarında hafif bir azalış, sağlıklı doğumdan geç doğuma geçerken ise hafif bir artış gözlemlenmektedir.

6.18 Koşullu Matris Çizimi

pl <- function(x, y, pch=20, col=1, ...) {
  points(x=x, y=y, col=col, pch=pch, type="p", ...)
  lines(lowess(x=x, y=y), col="blue")
 warning = FALSE}
coplot(bwt~age|height, col="black", data=train,panel=pl)

coplot(bwt~age|gestation, col="black", data=train, panel=pl, rows=1)

coplot(bwt~age|smoke*parity, data=train, col="black",panel=pl)

  1. grafik seti için; Boyların aralıklarına bakarsak, hemen hepsinde sağa doğru gidildikçe yoğunluğun azaldığını görebiliriz. Yoğunluktan uzakta olan belli başlı gözlemler, potansiyel aykırı gözlem olabilirler. Örneğin alta ve en sağda olan grafiğe bakarsak, 4 gözlemin en üstte ayrı ayrı yer aldıklarını görürüz. Potansiyel aykırı değerlerdir.

  2. grafik seti için; Erken doğum, sağlıklı doğum ve geç doğumlar kullanılmıştır. Genel bakışta sağlıklı doğumda yoğunluğun fazla olduğunu görebiliriz. Ayrıca annelerin yaşları arttıkça bebeklerin doğum ağırlığında da (eğrilere bakınca) j-hafif bir artışı buradan gözlemleyebiliriz.

  3. grafik seti için; smoke ve parity etkileşimi yani annelerin sigara kullanımı ve daha önce doğum yapma durumları eklenmiştir. Önceden doğum yapmayanların yoğunluğunun daha fazla olduğunu görmekteyiz.

6.19 Korelasyon Haritası

library(corrplot)
## corrplot 0.92 loaded
corrplot(cor(train[,c(4,1,5,6)]), method = "ellipse")

corrplot.mixed(cor(train[,c(1,4,5,6)]), lower = "number", 
               upper = "square",tl.col = "black") 

Şekiller kareye ya da elipe ne kadar benzer ise ilişki de o kadar fazladır. Baktığımızda en çok ilişki annelerin boyları ve kiloları arasında görünmektedir. bwt değişkeni için de en fazla ilişki annelerin boylarında görünmektedir. Ancak doğrusallık ve normallik olmadığı için yorumlamak da pek doğru olmaz.

O halde kendall ile grafiği çizelim.

library(corrplot)
corrplot(cor(train[, c(4,1,5,6)], method = "kendall"), method = "ellipse")

corrplot.mixed(cor(train[, c(1,4,5,6)], method = "kendall"), lower = "number", 
               upper = "square", tl.col = "black")

  1. grafik için; En yüksek ilişki annelerin kiloları ve boyları arasında görülmüştür. Bağımlı değişken bwt’ye bakacak olursak en yüksek ilişkisi annelerin kiloları ile en düşük ilişkisi ise annelerin yaşları iledir. Yani bebeklerin doğum ağırlıkları, annelerin ağırlıkları ile yüksek ilişki gösterirken annelerin yaşları ile düşük ilişk göstermiştir.

  2. grfaik için; bwt değişkeninin ilişki sayısına bakarsak, annelerin yaşları ile 0.16 , annelerin boyları ile 0.13 , anenlerin yaşları ile 0.03’lük ilişki göstermektedir. En yüksek ilişkinin annelerin boyları ile olduğunu elips grafiğinde de söylemiştik. 0.16 değeri, diğer değişkenlere göre daha yüksektir ancak genel anlamda çok da kuvvaetli bir ilişki sayılmaz.

6.20 Ortanca İzi Çizimi

Öncelikle gestation gruplarına göre bwt üzerinden ortanca ve dag bulalım;

m <- train %>% group_by(gestation) %>%
  summarise(q1 = quantile(bwt, probs = 0.25),
            ortanca = quantile(bwt, probs = 0.50),
            q3 = quantile(bwt, probs = 0.75),
            DAG = q3 - q1)

m
## # A tibble: 3 × 5
##   gestation    q1 ortanca    q3   DAG
##   <fct>     <dbl>   <dbl> <dbl> <dbl>
## 1 Early      2.44    2.84  3.27 0.829
## 2 Healthy    3.12    3.40  3.71 0.595
## 3 Late       3.25    3.56  3.91 0.659

Ortanca izi çizimi yapalım;

plot(m$gestation, m$ortanca, xlab="Gestation Kategorileri", ylab="Ortanca", main="Ortanca izi Çizimi")

Bebeklerin anne karnında kalma süreleri arttıkça ortancanın da arttığını görebiliriz. Özellikle erken doğumdan sağlıklı sürede doğuma geçerken yüksek bir artış bulunmaktadır.

Farklı bir yol ile de çizebiliriz;

library(ggplot2)
ggplot(m, aes(gestation, ortanca))+
  geom_point(size=3,alpha=0.6)

Bebeklerin anne karnında kalma süreleri arttıkça ortancanın da arttığını görebiliriz. Özellikle erken doğumdan sağlıklı sürede doğuma geçerken yüksek bir artış bulunmaktadır.

Farklı bir şekilde daaha görebiliriz;

ggplot(train, aes(x=gestation,y=bwt, fill=gestation))+
  geom_boxplot()+
  stat_summary(fun = median, geom="line", group= 1, color= "black", size = 1)  

Bebeklerin anne karnında kalma süreleri arttıkça ortancanın da arttığını görebiliriz. Özellikle erken doğumdan sağlıklı sürede doğuma geçerken yüksek bir artış bulunmaktadır. Bebeklerin doğum süreleri arttıkça bebeklerin doğum ağırlıkları da artmıştır. Bu durum, doğrusal bağlantıya işaret edebilir.

6.21 Konum-Varyans Çizimi

ggplot(m, aes(x=ortanca, y=DAG, color=gestation, group=1))+
  geom_point(size=4,alpha=0.6)+
  geom_line(color="black")

Erken doğumdan sağlıklı doğuma kadar olan aralıkta, konum arttıkça yayılım azalmıştır. Ancak Sağlıklı doğumdan geç doğuma geçerken konum arttıkça yayılım da artmıştır.

6.22 Etkileşim Grafiği

gestation ile smoke değişkenleri ile etkileşim grafiği çizelim.

etk_train <- train%>%
  group_by(smoke,gestation)%>% 
  summarise(Median=median(bwt))
## `summarise()` has grouped output by 'smoke'. You can override using the
## `.groups` argument.
etk_train
## # A tibble: 6 × 3
## # Groups:   smoke [2]
##   smoke gestation Median
##   <fct> <fct>      <dbl>
## 1 No    Early       2.98
## 2 No    Healthy     3.52
## 3 No    Late        3.60
## 4 Yes   Early       2.61
## 5 Yes   Healthy     3.26
## 6 Yes   Late        3.52
ggplot(etk_train, aes(x = gestation, y = Median, color=smoke, group=smoke)) +
  geom_line() +
  geom_point()

Öncelikle ilgili alanın medyanlarını hesapladık.

Etkileşim grafiğinde paralellik varsa, etkileşim yoktur. Erken doğumdan sağlıklı doğuma geçerken etkileşim yoktur. Ancak sağlıklı doğumdan geç doğuma geçerken etkileşim olabilir.

6.23 İleri Grafikler

6.23.1 Mozaik Çizimi

tab <- xtabs(~ parity + gestation + smoke, data = train)
ftable(tab)
##                  smoke  No Yes
## parity gestation              
## No     Early            39  23
##        Healthy         351 247
##        Late             43  31
## Yes    Early            10   4
##        Healthy         123  85
##        Late             25   9

Daha önce doğum yapmayan annelerin; + Erken doğum yapanlarının sigara içmeyenlerinin sayısı 38, sigara içenlerinin sayısı 23’tür. + Sağlıklı sürede doğum yapanlarının sigara içmeyenlerinin sayısı 351, sigara içenlerinin sayısı 248’dir. + Geç doğum yapanlarının sigara içmeyenlerinin sayısı 44, sigara içenlerinin sayısı 30’dur.

Daha önce doğum yapan annelerin; + Erken doğum yapanlarının sigara içmeyenlerinin sayısı 10, sigara içenlerinin sayısı 4’tür. + Sağlıklı sürede doğum yapanlarının sigara içmeyenlerinin sayısı 123, sigara içenlerinin sayısı 85’tir. + Geç doğum yapanlarının sigara içmeyenlerinin sayısı 25, sigara içenlerinin sayısı 9’dur.

library(ggplot2)
library(ggmosaic)
## 
## Attaching package: 'ggmosaic'
## The following object is masked from 'package:GGally':
## 
##     happy
ggplot(train) +
  geom_mosaic(aes(x = product(parity, smoke), fill=parity)) +
  labs(x = "Sigara ", title='f(Doğum Süreleri, Sigara|Önceden Doğum Yapma)') + 
  facet_grid(gestation~.)

gestation değişkeni, kategorilerine göre 3 bölüme ayrılmıştır. Değişkenin 3 kategorisinde de yani bebeklerin; erken, sağlıklı ve geç olmak üzere tüm doğum kategorileri için, annelerinde sigara içmeme oranı ve ilk doğumlarını yapma oranı fazladır.

Erken doğan bebekler için; + Annelerde sigara içmeme durumu daha fazladır. Ayrıca sigara içmeyen annelerin önceden doğum yapma oranı, sigara içen annelere göre daha fazladır.

Sağlıklı doğan bebekler için; + Annelerde sigara içmeme durumu daha fazladır. Erken doğum yapan annelere kıyasla sigara içen sayısı daha fazladır. Ayrıca sigara içmeyen annelerin önceden doğum yapma oranı, sigara içen anneler ile neredeyse eşittir.

Geç doğan bebekler için; + Annelerde sigara içmeme durumu daha fazladır. Ayrıca sigara içmeyen annelerin önceden doğum yapma oranı, sigara içen annelere göre daha fazladır.

6.23.2 Chernoff Yüzleri

Bu grafik, her bireye ait yüz çizmektedir. Her öge, bir değişkeni ifade eder. Gözlemler çok olduğu için biz gözlemler kategoriymiş gibi alacağız. Bu anlamda ortalama da kullanılacaktır.

Train veri setinden bebeklerin doğum sürelerine(gestation) göre bebeklerin doğum ağırlıklarının(bwt), annelerin boylarının(height), annelerin yaşlarının(age) ortalamalarını aldık. Bunu veri kümesi gibi düşünüp yüzü çizdirebiliriz.

faces fonksiyonuna veriyi yazıp kategorik değişkeni çıkarırız.

library(aplpack)
library(dplyr)

chern_data <- train%>%
  group_by(gestation) %>%
  dplyr::summarize(mean_bwt = mean(bwt),mean_boy = mean(height), mean_yas = mean(age))

faces(chern_data[,-1],  labels=as.character(chern_data$gestation))

## effect of variables:
##  modified item       Var       
##  "height of face   " "mean_bwt"
##  "width of face    " "mean_boy"
##  "structure of face" "mean_yas"
##  "height of mouth  " "mean_bwt"
##  "width of mouth   " "mean_boy"
##  "smiling          " "mean_yas"
##  "height of eyes   " "mean_bwt"
##  "width of eyes    " "mean_boy"
##  "height of hair   " "mean_yas"
##  "width of hair   "  "mean_bwt"
##  "style of hair   "  "mean_boy"
##  "height of nose  "  "mean_yas"
##  "width of nose   "  "mean_bwt"
##  "width of ear    "  "mean_boy"
##  "height of ear   "  "mean_yas"

‘effect of variables’ kısmında, ilgili açıklamalar yer alır.

YORUM:

height of face, height of mouth, height of eyes, width of hair, width of nose => mean_bwt: Yüzlerin, ağızların, gözlerin uzunluğu ve saçların, burnun genişliği; bwt değişkeninin, yani bebeklerin doğum ağırlıklarının ortalamaları ile ilişkilidir. Erken doğumdan geç doğuma yüzlerin, ağızın, gözlerin uzunluklarının ve saçlar ile burnun genişliklerinin arttığını görürüz. Bu da, erken doğumdan geç doğuma doğru bebeklerin doğum ağırlıklıkları ortalamalarının arttığı anlamına gelir.

width of face, width of mouth, width of eyes, style of hair, width of ear => mean_boy: Yüzlerin, ağızların, gözlerin, kulakların genişliği ve saçların şekli; annelerin boy ortalamaları ile ilişkilidir. Erken doğumdan geç doğuma doğru yüzlerin, ağızların, gözlerin, kulakların genişliği ve saçların şeklinin arttığını görürüz. Bu da, erken doğumdan geç doğuma doğru annelerin boy ortalamalarının arttığı anlamına gelir.

structure of face, smiling, height of hair, height of nose, height of ear => mean_yas: Yüz yapısı, gülümseme ile saçların, burunların, kulakların uzunlukları; annelerin yaş ortalamaları ile ilişkilidir. Geç doğum için verilen yüz şeklinin çene yapısının köşeli olmadığını görmekteyiz. Erken ve sağlıklı doğumlar için çene yapılarında geniş ya da sivri olsa da bazı hatlar mevcut. Bu durum geç doğan bebekler için oluşturulan yüzde yok. Geç doğan bebeklerin annelerinin yaş ortalamalarının, diğerlerine göre daha homojen olduğunu düşünebiliriz. Aynı şekilde gülümsemeye bakarsak; erken ve sağlıklı doğan bebeklerin hiç gülmediğini, geç doğan bebeklerin çok hafif güldüğünü görürüz. Geç doğan bebeklerin annelerinin yaşları daha büyüktür. Erken doğumdan geç doğuma doğru saçların, burunların, kulakların uzunluklarında artış görünmektedir. Bu da, erken doğumdan geç doğuma doğru annelerin yaş ortalamalarının arttığı anlamına gelir.

6.23.3 Yıldız Grafikleri

data_sorted <- train[order(-train$bwt),]

Çok gözlem olduğu için veriyi 10 gruba ayırırp bwt’ye göre sıraladık. Grup arttıkça bwt de artacak.

Her bir grupta annelerin yaşlarının, boylarının ve bebeklerin ağırlıklarının ortalamalarını alacağız. Böylece her bir grubun, bir yıldız çizimi olacak.

library(ggplot2)
data_sorted$group <- as.numeric(cut_number(as.numeric(rownames(data_sorted)), 10)) 

library(dplyr)
data_star<-data_sorted %>%
  group_by(group) %>% 
  dplyr::summarize(Yas= mean(age),Boy= mean(height),bwt= mean(bwt))

stars(data_star[,-1], key.loc = c(15,1.25),main = "Starplot",label=row.names(data_star),cex=.7)

Hangi gruplara ait çizim diğerleri ile benzer ?

6, 7, 8. gruptakilerin birbirine oldukça benzer olduğunu görürüz. Bunlar beraber kümelenebilir, yorumunu yapabiliriz.

Hiyerarşi yarattığımız için art arda gelen gruplar adına yorumda bulunabiliyoruz.

6.23.4 Çardak Çizimi

library(lattice)
library(dplyr)
age_filter <- filter(train,between(age,20,35))
xyplot(bwt ~ height | age, data = age_filter)

Çalışmaya başlarken sağlıklı anne olma yaşını 20-35 aralıklarında kabul edeceğimizi söylemiştik. Bu sebeple yaşı, 20-35 aralığı ile kısıtladık. Ve 20-35 kısıtını kırılım olarak alıp grafiği oluşturduk.

Sol en üstteki grafikte belki bir doğrusallık yakalanabilir. Onun haricinde, aykırı değerleri bulmak için de kullanışlı bir grafik oluşturmuş olduk.

6.23.5 Temel Bileşenler Analizi

Veri setimizi train ve test setlere ayırdıktan sonra gestation değişkenini, bebeklerin doğuma kadar geçen sürelerine göre kategorize etmiştik. Temel Bileşenler Analizi ve sonraki grafikler için, gestation değişkenine göre rasgele gözlemler seçelim. Değişken 3 kategoriden oluşmaktaydı. Her bir kategori için 7 tane rasgele değişken seçelim.

library(dplyr)

set.seed(123)

small_data <- train %>%
  filter(gestation %in% c("Early", "Healthy", "Late")) %>%
  group_by(gestation) %>%
  sample_n(7)

Numerik olmayan değişkenleri çıkaralım.

small_data$gestation <- NULL
small_data$parity <- NULL
small_data$smoke <- NULL

Şimdi ise, bwt değişkenini ele alalım. Bebeklerin doğum ağırlıkları değişkenini, gözlemlermiş gibi satır isimleri olarak çekelim. Ve sütundan kaldıralım.

rownames(small_data) <- small_data$bwt
small_data <- small_data[,-1]
summary(small_data)
##       age            height          weight     
##  Min.   :19.00   Min.   :152.4   Min.   :44.10  
##  1st Qu.:25.00   1st Qu.:157.5   1st Qu.:50.85  
##  Median :27.00   Median :162.6   Median :55.80  
##  Mean   :27.81   Mean   :163.4   Mean   :57.04  
##  3rd Qu.:33.00   3rd Qu.:170.2   3rd Qu.:63.00  
##  Max.   :39.00   Max.   :177.8   Max.   :78.75

Korelasyon matrisi oluşturalım.

fit.pca <- prcomp( ~. , data = small_data, scale = TRUE)  

Analizi yapıp sonucu kaydettik. şimdi çizimini yapalım.

library(factoextra)
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
fviz_pca_var(fit.pca, col.var="violetred4", repel = TRUE)

1. boyut için; Tüm değişkenler sağda kaldılar. Bu yüzden hepsi pozitiftir. 1. boyut için negatif değer görünmemektedir. Değişkenlerin kendi konumlarına göre yorum yapmak istersek, en az katkının age değişkeni tarafından olduğunu görürüz. Çünkü sıfıra en yakın olan değişken age’dir. En yüksek katkı ise height değişkenindedir. Çünkü eksene tam dik konumdadır.

2. boyut için; Age değişkeninin yükü pozitiftir. Weight değişkeninin yükü ise negatiftir. Height değişkenine bakarsak, çizgiye çok çok yakın olduğunu görürüz. Bu sebeple yükü de 0’a oldukça yakındır ve katkısı da bir o kadar azdır.

Yüklere bakalım;

fit.pca$rotation[,1:2]
##              PC1        PC2
## age    0.2842140 -0.8982038
## height 0.7144961 -0.0347986
## weight 0.6393104  0.4381997

Boyutlara göre inceleme yaptığımızda; 1. boyut için büyükten küçüğe katkı sıralaması height, weight, age olarak bulunmuştur. 2. boyut için de yine sırasıyla age, weight ve height şeklindedir. Weğight ve height negatifte kaldıkları için - değer almışlardır. Ayrıca height’in katkısının ne kadar az olduğunu buradan da görebiliriz.

Height ve weight değişkenleri arasındaki açı oldukça azdır. Bu sebeple korelasyonlarının pek de düşük olmadığını buradan da yorumlayabiliriz.

6.23.6 Radar Grafiği

İlk 6 gözlemi seçip çizim yapalım. Maksimum, minimum ve ortalama değerlerini de çizimden önce tek tek bulacağız.

sm <- small_data[1:6,]
col_max <- apply(sm, 2, max)
col_min <- apply(sm, 2, min)
col_mean <- apply(sm, 2, mean)
col_summary <- t(data.frame(Max = col_max, Min = col_min, Average = col_mean))

df <- as.data.frame(rbind(col_summary, sm))
df
##              age   height weight
## Max     34.00000 177.8000 65.250
## Min     21.00000 152.4000 49.500
## Average 28.66667 165.5233 55.275
## 1       21.00000 152.4000 51.750
## 2       25.00000 162.5600 50.850
## 3       33.00000 170.1800 58.500
## 4       30.00000 177.8000 65.250
## 5       34.00000 170.1800 55.800
## 6       29.00000 160.0200 49.500

Her değişken için bir radar grafiği oluşturacağız.

library(fmsb)
## Registered S3 methods overwritten by 'fmsb':
##   method    from
##   print.roc pROC
##   plot.roc  pROC
library(scales)
## 
## Attaching package: 'scales'
## The following object is masked from 'package:purrr':
## 
##     discard
## The following object is masked from 'package:readr':
## 
##     col_factor
## The following objects are masked from 'package:psych':
## 
##     alpha, rescale
par(mfrow = c(2,3))
for (i in 4:nrow(df)) {
  radarchart(
    df[c(1:3, i), ],
    pfcol = c(alpha("gray",0.5),NA),
    pcol= c(NA,"red"), plty = 1, plwd = 2,
    title = row.names(df)[i]
  )
 warning = FALSE}

Grafiği çizip eş anlı görmek için satır, sütunu c(2,3) ile ayarladık.

Bu minik veri setinde gözlemler, bebeklerin doğum ağırlıklarından oluşturmaktaydı. Aynı şekilde grafik isimleri de bu ağırlıklardır. En içteki gri halka, ortalamaları temsil etmektedir. kırmızı çizgi ise gözlemlerin sahip olduğu bilgilerdir.

YORUM

2.4948 kg doğan bebeğin annesinin yaşı, boyu ve kilosu; ortalamanın altındadır. 3.8556 kg doğan bebeğin annesinin yaşı ortalama olarak görünmektedir. Boyu ortalamanın biraz altında, kilosu ise ortalamanın biraz üstündedir. 2.40975 kg doğan bebeğin annesinin yaşı ve boyu ortalamadan yüksek ancak kilosu hemen hemen ortalamadır. 2.97675 kg doğan bebeğin annesinin yaşı, boyu ve kilosu; ortalamanın üstündedir. 3.1752 kg doğan bebeğin annesinin yaşı ve boyu ortalamadan yüksek ancak kilosu hemen hemen ortalamadır. 2.4381kg doğan bebeğin annesinin yaşı ve kilosu, ortalamanın altındadır. Boyu ise hemen hemen ortalamadır.

6.23.7 Lollipop Graph

Sonraki aşamalarda kolaylık olması açısından gözlemleri harfler ile adlandıralım. Sırasıyla;

2.4948 = a 3.8556 = b 2.40975 = c 2.97675 = d 3.1752 = e 2.4381 = f

şeklinde isimlendirelim.

rownames(sm) <- c("a", "b", "c", "d", "e", "f")
sm
## # A tibble: 6 × 3
##     age height weight
## * <dbl>  <dbl>  <dbl>
## 1    21   152.   51.8
## 2    25   163.   50.8
## 3    33   170.   58.5
## 4    30   178.   65.2
## 5    34   170.   55.8
## 6    29   160.   49.5

Oluşturduğumuz 6 gözlemlik veri setinin transpozunu alalım.

library(tidyverse)
library(ggpubr)
library(tibble)

df <- t(sm) %>%
  as.data.frame() %>%
  rownames_to_column("Var")
df
##      Var      a      b      c      d      e      f
## 1    age  21.00  25.00  33.00  30.00  34.00  29.00
## 2 height 152.40 162.56 170.18 177.80 170.18 160.02
## 3 weight  51.75  50.85  58.50  65.25  55.80  49.50
df_new <- df %>% pivot_longer(
  cols = c(a, b , c , d , e , f),
  names_to = "bwt",
  values_to = "Value"
)
df_new
## # A tibble: 18 × 3
##    Var    bwt   Value
##    <chr>  <chr> <dbl>
##  1 age    a      21  
##  2 age    b      25  
##  3 age    c      33  
##  4 age    d      30  
##  5 age    e      34  
##  6 age    f      29  
##  7 height a     152. 
##  8 height b     163. 
##  9 height c     170. 
## 10 height d     178. 
## 11 height e     170. 
## 12 height f     160. 
## 13 weight a      51.8
## 14 weight b      50.8
## 15 weight c      58.5
## 16 weight d      65.2
## 17 weight e      55.8
## 18 weight f      49.5

Artık lollipop grafiğini çizebiliriz.

ggdotchart(
  df_new, x = "Var", y = "Value", 
  group = "bwt", color = "bwt",
  add = "segment", position = position_dodge(0.3),dot.size=3,
  sorting = "desc"
)

YORUM

2.4948 = a 3.8556 = b 2.40975 = c 2.97675 = d 3.1752 = e 2.4381 = f olarak isimlendirmiştik.

En yüksek boya sahip annenin bebeğinin ağırlığı, yeşil lollipop yani c = 2.40975’dir. En yüksek ağırlığa sahip annenin bebeğinin ağırlığı, turkuaz lollipop yani d = 2.97675’dir. En yüksek yaşa sahip annenin bebeğinin ağırlığı, mavi lollipop yani e = 3.1752’dir.

Bu incelemeyi bireysel de yapabiliriz;

ggdotchart(
  df_new, x = "Var", y = "Value", 
  group = "bwt", color = "bwt",
  add = "segment", position = position_dodge(0.3), size = 1, dot.size = 2,
  sorting = "desc", facet.by = "bwt",
  rotate = TRUE, legend = "none"
)

YORUM

2.4948 = a 3.8556 = b 2.40975 = c 2.97675 = d 3.1752 = e 2.4381 = f olarak isimlendirmiştik.

Kontrol ettiğimizde tüm gözlemler için annelerin boy, kilo ve yaşları birbirinden çok uzak durmuyor. + a, b ve f kilolarına sahip bebeklerin annelerinin boylarının, diğer annelerin boylarından biraz daha kısa olduğunu söyleyebiliriz. + a ve f kilolarına sahip bebeklerinin annelerinin yaşları da diğerlerin az görünmektedir. + Kilolara baktığımızda yine a ve f kilolarına sahip bebeklerin annelerinin kilolarının, diğerlerinden daha az olduğunu söyleyebiliriz.

7 Nitel Verilerde Birliktelik/Bağımsızlık Ölçüleri

Nitel değişkenlerimiz; gestation, parity ve smoke olmak üzere inceleme yapalım.

7.1 Genel İnceleme

gestation değişkeni

freq(train$gestation)

##       var frequency percentage cumulative_perc
## 1 Healthy       806      81.41           81.41
## 2    Late       108      10.91           92.32
## 3   Early        76       7.68          100.00

Doğumların %81.31’inin sağlıklı günlerde, %10.91’inin geç ve %7.78’inin erken doğum olduğunu görmekteyiz.

parity değişkeni

freq(train$parity)

##   var frequency percentage cumulative_perc
## 1  No       734      74.14           74.14
## 2 Yes       256      25.86          100.00

Annelerin %74.14’ünün ilk doğumunu gerçekleştirdikleri, %25.86’sının ise ilk doğumun olmadığı görünmektedir.

smoke değişkeni

freq(train$smoke)

##   var frequency percentage cumulative_perc
## 1  No       591       59.7            59.7
## 2 Yes       399       40.3           100.0

Annelerin %59.7’si sigara içerken %40.3’ü sigara içmemektedir.

7.2 Sıklıklar

Tablolarda, gesttaion değişkeninin yani bebeklerin doğma günlerinin bağımlı değişken gibi düşünüp parity ve smoke değişkenlerini yorumlayalım.

gestation ve parity

table(train$gestation, train$parity)
##          
##            No Yes
##   Early    62  14
##   Healthy 598 208
##   Late     74  34

Erken doğan bebekler için 63’ünün annesinin ilk doğumunu yaptığı, 14’ünün ise ilk doğumunun olmadığını görmekteyiz.

Sağlıklı sürede doğan bebekler için 597’sinin annesinin ilk doğumunu yaptığı, 208’inin ise ilk doğumunun olmadığını görmekteyiz.

Geç doğan bebekler için 74’ünün annesinin ilk doğumunu yaptığı, 34’ünün ise ilk doğumunun olmadığını görmekteyiz.

gestation ve smoke

table(train$gestation, train$smoke)
##          
##            No Yes
##   Early    49  27
##   Healthy 474 332
##   Late     68  40

Erken doğan bebekler için 50’sinin annesinin sigara içmediğini, 27’sinin ise sigara içtiğini görmekteyiz.

Sağlıklı sürede doğan bebekler için 473’ünün annesinin sigara içmediğini, 332’sinin ise sigara içtiğini görmekteyiz.

Geç doğan bebekler için 68’inin annesinin sigara içmediğini, 40’ının ise sigara içtiğini görmekteyiz.

7.3 Yüzdeler

gestation ve parity

dt <- table(train$gestation, train$parity)
prop.table(dt,1)
##          
##                  No       Yes
##   Early   0.8157895 0.1842105
##   Healthy 0.7419355 0.2580645
##   Late    0.6851852 0.3148148

Erken doğan bebekler için %82’sinin annesinin ilk doğumunu yaptığı, %18’inin ise ilk doğumunun olmadığını görmekteyiz.

Sağlıklı sürede doğan bebekler için %74’ünün annesinin ilk doğumunu yaptığı, %26’sının ise ilk doğumunun olmadığını görmekteyiz.

Geç doğan bebekler için %68’inin annesinin ilk doğumunu yaptığı, %32’sinin ise ilk doğumunun olmadığını görmekteyiz.

gestation ve smoke

dt <- table(train$gestation, train$smoke)
prop.table(dt,1)
##          
##                  No       Yes
##   Early   0.6447368 0.3552632
##   Healthy 0.5880893 0.4119107
##   Late    0.6296296 0.3703704

Erken doğan bebekler için %65’inin annesinin sigara içmediğini, %35’inin ise sigara içtiğini görmekteyiz.

Sağlıklı sürede doğan bebekler için %59’unun annesinin sigara içmediğini, %41’inin ise sigara içtiğini görmekteyiz.

Geç doğan bebekler için %63’ünün annesinin sigara içmediğini, %37’sinin ise sigara içtiğini görmekteyiz.

7.4 Contingency Coeff & Cramer katsayısı & Kendall Tau-b

Öncelikle paketi aktif edelim

library(DescTools)      
## Registered S3 method overwritten by 'DescTools':
##   method       from   
##   plot.bagplot aplpack
## 
## Attaching package: 'DescTools'
## The following objects are masked from 'package:fmsb':
## 
##     CronbachAlpha, VIF
## The following object is masked from 'package:aplpack':
## 
##     plot.bagplot
## The following objects are masked from 'package:psych':
## 
##     AUC, ICC, SD
## The following objects are masked from 'package:caret':
## 
##     MAE, RMSE
## The following objects are masked from 'package:Hmisc':
## 
##     %nin%, Label, Mean, Quantile

gestation ve parity

dt <- table(train$gestation, train$parity)
Assocs(dt)[1:3,1]
## Contingency Coeff.           Cramer V      Kendall Tau-b 
##         0.06323867         0.06336550         0.06143756

Contingency Coeff = 0.06459532 bulunmuştur. Bu değer oldukça düşüktür. İki değişken arasında zayıf bir ilişki olduğunu gösterir.

Cramer V = 0.06473051 bulunmuştur. Bu değer de oldukça düşüktür ve iki değişken arasında zayıf bir ilişki olduğunu gösterir.

Kendall Tau-b = 0.06258649 bulunmuştur. Bu değer oldukça düşük ve yaklaşık olarak sıfıra yakın olduğu için iki değişken arasında anlamlı bir ilişkinin olmadığını gösterir.

gestation ve smoke

dt <- table(train$gestation, train$smoke)
Assocs(dt)[1:3,1]
## Contingency Coeff.           Cramer V      Kendall Tau-b 
##       0.0384232197       0.0384516141      -0.0001145167

Contingency Coeff = 0.040816238 bulunmuştur. Bu değer oldukça düşüktür. İki değişken arasında zayıf bir ilişki olduğunu gösterir.

Cramer V = 0.040850280 bulunmuştur. Bu değer de oldukça düşüktür ve iki değişken arasında zayıf bir ilişki olduğunu gösterir.

Kendall Tau-b = 0.001750116 bulunmuştur. Bu değer oldukça düşük ve yaklaşık olarak sıfıra yakın olduğu için iki değişken arasında anlamlı bir ilişkinin olmadığını gösterir.

7.5 Odds Oranları

gestation ve parity

library(gplots)
## Registered S3 method overwritten by 'gplots':
##   method         from     
##   reorder.factor DescTools
## 
## Attaching package: 'gplots'
## The following object is masked from 'package:DescTools':
## 
##     reorder.factor
## The following object is masked from 'package:PerformanceAnalytics':
## 
##     textplot
## The following object is masked from 'package:stats':
## 
##     lowess
dt <- table(train$gestation, train$parity)


balloonplot(t(dt), main ="Önceden Doğum Yapma Etkeni ve Doğrum Durumu ", xlab ="", ylab="",
            label = FALSE,show.margins = FALSE)

Önceden doğum yapma etkeninin en çok sağlıklı sürede gerçekleşen doğumlarda olduğunu görmekteyiz.

Direkt olarak odds oranına gestation ve parity için bakılmayacaktır. Çünkü 2x2’lik tablo için heesaplanamıyor.

smoke ve parity

dt <- table(train$smoke, train$parity)


balloonplot(t(dt), main ="Önceden Doğum Yapma Etkeni ve Sigara içme Durumu", xlab ="", ylab="",
            label = FALSE,show.margins = FALSE)

Önceden doğum yapma durumunun en az etkisinin sigara içenler ile olduğunu görürüz.

dt
##      
##        No Yes
##   No  433 158
##   Yes 301  98
odds <- OddsRatio(dt, conf.level=0.95)
odds
## odds ratio     lwr.ci     upr.ci 
##  0.8922579  0.6664452  1.1945830

odds oranı < 1 olduğundan ters yönde (negatif) birliktelik vardır.

Önceden doğum yapmayan annelerin, önceden doğum yapan annelere göre sigara içme oranı 0.9 kat daha fazladır.

8 Dönüşüm

8.1 Dönüşüm Gerekliliği İncelemesi

Dönüşüm uygulaması için Tukey’s Ladder ile pratik yol kullanacağız. Ancak öncesinde, değişkenlerin dağılımlarını, grafikler ve temel istatistikler ile eğer gerekirse hangi dönüşümü uygulayabileceğimizi bulmak adına ufak bir inceleme yapalım.

library(funModeling)
plot_num(train)

boxplot(train$bwt, train$age, train$height, train$weight, 
        main="Boxplots", names=c("bwt", "age", "height", "weight"), col="orange")

bwt değişkeni

Genişliği 3.43035 bulunmuştu. Bu değer 20’den küçük olduğu için genişliğe göre dönüşüm gerekmez.

Çapıklık değeri -0.1238406 ve basıklık değeri 3.501518 olarak bulunmuştu. Sivri ve hafif sola çarpık dağılım söz konusudur. Histograma baktığımızda, normale oldukça yakın olduğunu görmekteyiz. Bu durumda dönüşüm gerekmeyebilir. Zaten son kararı Tukey’s Ladder ile vereceğiz.

Kutu grafiğine baktığımızda, uç değerlerin varlığını görmekteyiz. Bu durum dönüşüme işaret olabilir.

Genel hatlara bakıldığında, dönüşüm konusunda net bir ayrım henüz yapamadık.

age değişkeni

Genişliği 29 bulunmuştu. Bu değer 20’den büyük olduğu için genişliğe göre dönüşüm gerekir.

Çapıklık değeri 0.5546203 ve basıklık değeri 2.662981 olarak bulunmuştu. Basık ve sağa çarpık dağılım vardır. Histogramı da bunu destekler nitelikte sağa çarpıktır.

Kutu grafiğinde yalnızca 1 adet uç değer görünmektedir. Bu durum dönüşüme ihtiyaç gerektirmeyenbilir.

Genele bakıldığında, dönüşümün gerektiği izlenimini alırız.

height değişkeni

Genişliği 45.72 bulunmuştu. Bu değer 20’den büyük olduğu için genişliğe göre dönüşüm gerekir.

Çapıklık değeri -0.1304564 ve basıklık değeri 3.218946 olarak bulunmuştu. Sivri ve hafif sola çarpık dağılım söz konusudur. Bu sola çarpıklık histogramdan da görülmektedir.

Kutu grafiğinde yalnızca 2 adet uç değer görünmektedir. Bu durum dönüşüme ihtiyaç gerektirmeyebiir.

Genele bakıldığında, dönüşümün gerektiği izlenimini alırız.

weight değişkeni

Genişliği 73.35 bulunmuştu. Bu değer 20’den büyük olduğu için genişliğe göre dönüşüm gerekir.

Çapıklık değeri 1.219162 ve basıklık değeri 5.761421 olarak bulunmuştu. Sivri ve sağa çarpık dağılımı vardır. Bu sivrilik ve sağa çarpıklık, histogramda da görünmektedir.

Kutu grafiğine baktığımızda, uç değerlerin varlığını görmekteyiz. Bu durum dönüşüme işaret olabilir.

Genele bakıldığında, dönüşümün gerektiği izlenimini alırız.

8.2 Dönüşümlere Karar Verme

Tukey’s Ladder ile dönüşüm gerekip gerekmediğine bakalım. Eğer gerekiyorsa, hangi dönüşümlerimn kullanılacağına karar verelim.

bwt değişkeni

library(rcompanion)
## 
## Attaching package: 'rcompanion'
## The following object is masked from 'package:psych':
## 
##     phi
bwt_tukey <- transformTukey(train$bwt, plotit=FALSE)
## 
##     lambda      W Shapiro.p.value
## 448  1.175 0.9964         0.02072
## 
## if (lambda >  0){TRANS = x ^ lambda} 
## if (lambda == 0){TRANS = log(x)} 
## if (lambda <  0){TRANS = -1 * x ^ lambda}
bwt_tukey
##   [1] 3.927507 4.546965 3.724112 4.882678 4.967156 4.714376 5.179284 5.051848
##   [9] 5.221867 5.094274 3.805277 3.968378 4.009312 4.009312 5.221867 4.173664
##  [17] 3.602859 4.009312 4.297567 4.672439 3.522359 5.307188 3.968378 3.968378
##  [25] 4.297567 4.630558 4.173664 3.927507 3.683628 4.798417 4.297567 3.805277
##  [33] 3.845956 5.179284 5.693635 3.805277 4.297567 5.264501 4.009312 3.482211
##  [41] 5.179284 4.380466 4.380466 5.264501 2.426313 3.683628 4.380466 4.297567
##  [49] 3.442132 4.546965 3.562575 3.282514 4.924890 3.522359 5.136753 4.630558
##  [57] 5.736820 4.756369 4.214905 3.045254 4.505253 4.256206 4.214905 3.362182
##  [65] 5.435553 4.588733 5.009475 3.968378 4.967156 4.588733 4.967156 4.672439
##  [73] 4.422004 3.968378 4.546965 4.798417 3.968378 2.810717 4.840520 2.888584
##  [81] 4.546965 4.214905 4.173664 4.050307 3.683628 4.173664 4.756369 5.693635
##  [89] 4.463600 4.924890 3.522359 4.422004 3.045254 4.798417 3.203134 4.132484
##  [97] 5.094274 4.672439 3.402122 4.672439 4.256206 4.091365 3.886700 3.163553
## [105] 3.764662 4.091365 4.546965 4.546965 4.798417 3.124045 4.297567 3.402122
## [113] 5.349925 4.214905 5.221867 3.602859 4.882678 3.482211 3.927507 4.463600
## [121] 4.463600 4.009312 4.505253 4.173664 4.338987 4.756369 3.602859 4.798417
## [129] 5.221867 4.798417 4.050307 3.927507 4.672439 4.463600 4.256206 4.967156
## [137] 4.214905 4.798417 3.442132 4.714376 4.882678 3.927507 3.242788 3.927507
## [145] 4.672439 4.924890 4.756369 3.683628 5.136753 4.882678 4.422004 3.562575
## [153] 4.630558 3.005971 4.132484 4.924890 3.442132 3.322313 4.380466 5.521382
## [161] 3.764662 5.478442 4.672439 3.442132 3.927507 4.505253 3.282514 5.478442
## [169] 2.810717 3.602859 3.005971 4.009312 3.683628 4.173664 4.798417 4.091365
## [177] 4.009312 3.805277 4.630558 5.051848 3.124045 5.650498 4.422004 4.297567
## [185] 4.588733 2.810717 6.478195 3.968378 3.845956 5.478442 3.845956 4.463600
## [193] 4.297567 5.094274 5.136753 3.362182 3.927507 4.630558 3.643210 4.546965
## [201] 4.422004 3.968378 4.050307 2.655949 4.380466 4.422004 3.805277 4.422004
## [209] 4.967156 5.136753 4.009312 3.482211 5.051848 4.756369 3.562575 4.173664
## [217] 5.564371 4.338987 5.179284 4.672439 4.173664 3.764662 4.672439 3.805277
## [225] 5.392714 4.924890 4.091365 4.009312 3.322313 4.882678 4.256206 4.714376
## [233] 3.045254 2.810717 3.643210 4.714376 2.617463 3.764662 3.845956 5.179284
## [241] 4.882678 3.805277 3.322313 3.724112 3.442132 2.274984 4.380466 3.124045
## [249] 3.442132 3.402122 4.091365 4.091365 5.435553 3.805277 5.136753 3.562575
## [257] 4.967156 3.886700 3.764662 4.672439 4.214905 4.050307 3.522359 5.009475
## [265] 4.338987 3.562575 4.672439 4.588733 4.756369 3.602859 3.124045 4.630558
## [273] 3.643210 4.214905 4.132484 5.051848 3.968378 4.214905 3.683628 2.274984
## [281] 2.927635 3.683628 4.297567 3.643210 4.840520 3.683628 4.588733 4.050307
## [289] 4.380466 5.264501 3.482211 4.588733 3.322313 4.840520 3.442132 3.242788
## [297] 3.562575 3.402122 5.650498 4.505253 4.463600 4.463600 4.505253 3.322313
## [305] 4.505253 4.588733 4.672439 4.714376 4.505253 3.362182 4.009312 5.264501
## [313] 4.882678 4.256206 4.256206 4.214905 4.132484 4.714376 3.482211 5.179284
## [321] 4.132484 3.482211 6.040464 5.009475 4.714376 2.888584 4.672439 4.630558
## [329] 4.338987 4.009312 4.050307 4.173664 4.422004 5.221867 5.051848 4.214905
## [337] 4.050307 5.307188 3.886700 4.009312 4.714376 5.307188 4.297567 4.546965
## [345] 4.173664 4.840520 4.050307 4.588733 4.050307 3.402122 4.132484 4.967156
## [353] 4.338987 3.927507 4.588733 4.297567 4.214905 3.968378 4.091365 5.136753
## [361] 5.221867 4.505253 2.810717 4.338987 3.886700 3.482211 3.764662 3.482211
## [369] 4.546965 3.683628 4.882678 3.442132 3.402122 4.091365 2.927635 3.203134
## [377] 4.173664 4.505253 3.683628 4.380466 4.463600 3.322313 3.242788 3.562575
## [385] 4.756369 3.124045 4.630558 4.422004 4.009312 4.630558 3.968378 3.602859
## [393] 3.442132 4.714376 3.886700 2.199873 3.968378 4.338987 3.968378 4.009312
## [401] 4.546965 4.173664 5.650498 4.505253 4.672439 4.588733 3.805277 4.091365
## [409] 4.967156 4.463600 4.380466 3.845956 3.522359 5.823337 5.307188 4.714376
## [417] 3.968378 2.274984 4.050307 3.724112 4.338987 4.798417 3.927507 4.256206
## [425] 4.422004 4.009312 3.442132 3.124045 3.764662 4.009312 4.630558 4.338987
## [433] 3.845956 3.282514 4.297567 4.588733 4.380466 3.683628 5.136753 4.588733
## [441] 6.522217 3.602859 3.522359 4.380466 3.602859 4.756369 5.953471 3.602859
## [449] 3.724112 4.756369 4.505253 4.546965 4.091365 4.338987 5.094274 3.045254
## [457] 4.050307 3.845956 4.132484 4.463600 3.322313 4.009312 3.522359 5.349925
## [465] 4.338987 4.422004 4.091365 3.362182 4.009312 4.050307 4.132484 6.346398
## [473] 3.562575 5.221867 3.362182 5.136753 2.810717 4.630558 4.091365 3.764662
## [481] 3.602859 4.840520 4.009312 4.338987 3.602859 3.805277 3.522359 4.091365
## [489] 4.214905 5.264501 3.562575 4.338987 4.380466 4.588733 3.045254 3.764662
## [497] 3.724112 2.579061 3.968378 4.546965 4.588733 3.282514 3.522359 6.610392
## [505] 5.179284 4.505253 3.683628 3.927507 3.643210 5.564371 5.478442 4.882678
## [513] 5.521382 4.380466 4.338987 4.173664 4.297567 3.886700 3.124045 3.764662
## [521] 4.882678 4.256206 5.478442 3.163553 4.214905 4.588733 4.422004 4.380466
## [529] 5.094274 3.242788 4.967156 4.505253 3.968378 3.522359 4.505253 5.094274
## [537] 3.927507 3.362182 3.282514 4.050307 4.463600 5.823337 4.173664 4.338987
## [545] 4.588733 3.402122 4.672439 5.307188 2.771903 4.009312 4.132484 3.045254
## [553] 3.886700 4.091365 3.764662 3.362182 4.672439 4.798417 4.546965 5.478442
## [561] 2.849611 4.009312 2.540745 4.050307 3.805277 3.927507 4.882678 3.968378
## [569] 4.256206 4.091365 6.171303 2.888584 4.214905 4.714376 3.005971 4.672439
## [577] 3.522359 5.221867 4.380466 4.882678 4.091365 4.256206 4.050307 3.805277
## [585] 2.849611 4.756369 4.756369 4.714376 4.924890 2.771903 4.882678 3.084612
## [593] 4.588733 6.215008 2.274984 4.380466 3.602859 4.422004 4.422004 4.422004
## [601] 6.522217 4.505253 4.009312 5.009475 4.505253 3.886700 5.179284 3.805277
## [609] 2.888584 4.714376 3.602859 4.588733 3.045254 5.349925 4.546965 4.924890
## [617] 3.562575 4.214905 3.886700 3.242788 4.798417 4.463600 3.886700 4.967156
## [625] 2.733170 3.886700 5.392714 4.173664 2.849611 3.805277 4.463600 4.422004
## [633] 4.882678 4.505253 2.771903 4.672439 4.338987 3.242788 3.805277 4.338987
## [641] 5.564371 4.505253 4.091365 4.422004 5.009475 3.968378 3.242788 4.380466
## [649] 3.322313 4.173664 3.683628 4.091365 4.091365 5.221867 4.882678 4.256206
## [657] 6.127643 4.422004 4.924890 3.402122 4.798417 3.724112 5.094274 4.630558
## [665] 5.009475 4.630558 3.927507 2.502514 1.940037 3.764662 5.264501 3.084612
## [673] 3.927507 4.463600 3.322313 3.805277 4.050307 4.546965 3.845956 4.924890
## [681] 4.798417 3.402122 5.910046 3.886700 4.798417 5.264501 4.050307 4.463600
## [689] 3.845956 4.463600 3.764662 4.173664 3.522359 4.380466 5.693635 4.297567
## [697] 3.927507 4.297567 4.463600 4.050307 3.482211 3.805277 4.756369 4.422004
## [705] 6.084030 4.756369 4.840520 4.380466 4.297567 3.402122 4.588733 4.546965
## [713] 4.050307 4.338987 2.888584 4.546965 4.214905 4.422004 5.521382 2.927635
## [721] 3.242788 4.588733 4.546965 2.810717 4.380466 3.886700 4.009312 4.297567
## [729] 4.050307 4.505253 3.005971 3.362182 5.221867 4.967156 1.793815 3.764662
## [737] 3.805277 4.588733 5.478442 4.546965 5.136753 4.009312 3.724112 3.724112
## [745] 5.009475 4.882678 4.672439 2.502514 4.380466 3.562575 3.482211 3.163553
## [753] 5.823337 3.886700 4.173664 3.282514 3.362182 4.009312 5.009475 5.221867
## [761] 3.362182 4.588733 4.173664 3.968378 3.643210 4.882678 4.256206 4.338987
## [769] 5.009475 4.422004 3.602859 5.307188 4.756369 5.349925 3.764662 4.297567
## [777] 4.840520 3.683628 4.091365 4.967156 4.214905 4.173664 4.132484 3.927507
## [785] 5.392714 5.051848 4.798417 4.214905 1.685295 3.522359 3.602859 4.546965
## [793] 5.009475 3.562575 5.866667 4.132484 3.362182 5.221867 4.091365 4.422004
## [801] 4.173664 3.805277 3.402122 4.505253 4.091365 4.297567 4.297567 4.132484
## [809] 4.924890 4.214905 5.179284 3.724112 4.672439 3.805277 3.602859 4.422004
## [817] 2.540745 3.968378 3.845956 3.522359 3.968378 3.163553 5.478442 5.221867
## [825] 5.221867 5.264501 3.602859 4.588733 3.968378 5.910046 2.050799 5.264501
## [833] 5.009475 4.338987 3.764662 3.805277 4.297567 4.009312 4.091365 3.724112
## [841] 4.672439 4.882678 4.422004 3.482211 3.482211 4.588733 5.693635 3.764662
## [849] 2.617463 4.422004 3.163553 2.350467 4.338987 3.482211 4.214905 3.724112
## [857] 3.522359 3.602859 4.463600 5.264501 5.009475 4.380466 4.463600 4.173664
## [865] 3.968378 4.132484 4.505253 4.091365 4.924890 4.756369 3.402122 3.683628
## [873] 4.009312 3.045254 3.886700 3.724112 4.630558 4.840520 4.338987 3.402122
## [881] 4.380466 6.522217 4.588733 4.173664 4.463600 4.546965 4.050307 3.402122
## [889] 3.242788 4.672439 3.805277 3.724112 4.588733 3.805277 4.132484 3.845956
## [897] 4.214905 4.256206 4.091365 5.823337 5.823337 4.756369 6.040464 4.546965
## [905] 4.505253 4.798417 3.482211 3.402122 4.214905 3.322313 4.630558 4.297567
## [913] 4.924890 3.968378 1.976856 3.362182 2.966765 4.091365 3.643210 5.736820
## [921] 2.312680 2.426313 3.282514 3.643210 4.091365 4.091365 3.886700 3.886700
## [929] 5.094274 4.672439 4.630558 4.714376 3.968378 5.910046 3.643210 3.886700
## [937] 5.009475 4.630558 2.694518 4.173664 4.338987 4.009312 4.380466 4.967156
## [945] 5.307188 4.546965 2.694518 3.402122 3.968378 3.282514 4.297567 5.564371
## [953] 4.050307 4.714376 2.771903 4.173664 3.562575 3.643210 5.009475 3.522359
## [961] 3.886700 3.242788 3.482211 4.214905 3.482211 3.927507 4.630558 3.282514
## [969] 3.968378 4.505253 5.094274 4.050307 4.967156 3.362182 4.132484 3.282514
## [977] 5.307188 2.655949 3.805277 4.840520 4.380466 4.009312 5.179284 3.522359
## [985] 4.505253 4.714376 3.927507 4.546965 4.422004 4.091365

lambda değeri 1.175 bulunmuştur. Bu değer 1’e oldukça yakın. Zaten bwt değişkeninde dönüşüm uygulamasında kararsız kalmışık. Lambda değerini de baz aldığımızda şimdilik bwt değişkenine dönüşüm uygulamayalım.

age değişkeni

age_tukey <- transformTukey(train$age, plotit=FALSE)
## 
##     lambda     W Shapiro.p.value
## 386 -0.375 0.987       1.028e-07
## 
## if (lambda >  0){TRANS = x ^ lambda} 
## if (lambda == 0){TRANS = log(x)} 
## if (lambda <  0){TRANS = -1 * x ^ lambda}
age_tukey
##   [1] -0.2694991 -0.2866261 -0.3085688 -0.2990698 -0.2694991 -0.3085688
##   [7] -0.2793055 -0.2905618 -0.2726269 -0.3085688 -0.2608474 -0.2793055
##  [13] -0.2556119 -0.2694991 -0.2694991 -0.2440334 -0.3137556 -0.2905618
##  [19] -0.2793055 -0.3085688 -0.2905618 -0.2947033 -0.3251725 -0.2866261
##  [25] -0.2947033 -0.2793055 -0.3085688 -0.3036832 -0.3036832 -0.3085688
##  [31] -0.2905618 -0.3085688 -0.2905618 -0.2905618 -0.2726269 -0.2990698
##  [37] -0.2947033 -0.2947033 -0.2947033 -0.2866261 -0.2758922 -0.3137556
##  [43] -0.2947033 -0.2694991 -0.2694991 -0.3036832 -0.3137556 -0.3085688
##  [49] -0.3085688 -0.2866261 -0.2608474 -0.2581810 -0.2947033 -0.2758922
##  [55] -0.2556119 -0.2905618 -0.2947033 -0.2990698 -0.3036832 -0.3036832
##  [61] -0.3192771 -0.2531342 -0.2905618 -0.2905618 -0.2636176 -0.3085688
##  [67] -0.2990698 -0.2694991 -0.2793055 -0.2828790 -0.2726269 -0.2581810
##  [73] -0.3137556 -0.3036832 -0.2694991 -0.2866261 -0.2905618 -0.3085688
##  [79] -0.3137556 -0.2866261 -0.2636176 -0.2905618 -0.2694991 -0.3036832
##  [85] -0.2608474 -0.3036832 -0.2581810 -0.2694991 -0.3137556 -0.2828790
##  [91] -0.2947033 -0.2866261 -0.3314877 -0.3192771 -0.3137556 -0.2828790
##  [97] -0.2694991 -0.2990698 -0.2531342 -0.3036832 -0.2664989 -0.2758922
## [103] -0.3085688 -0.2793055 -0.2636176 -0.2990698 -0.3036832 -0.2990698
## [109] -0.3036832 -0.3192771 -0.2905618 -0.2531342 -0.2726269 -0.2990698
## [115] -0.2793055 -0.2726269 -0.3085688 -0.3036832 -0.3036832 -0.2556119
## [121] -0.2828790 -0.2828790 -0.2828790 -0.3251725 -0.3192771 -0.3036832
## [127] -0.2531342 -0.3137556 -0.3192771 -0.3137556 -0.3137556 -0.2947033
## [133] -0.3085688 -0.2828790 -0.2990698 -0.3036832 -0.2793055 -0.2793055
## [139] -0.2990698 -0.2990698 -0.3085688 -0.3085688 -0.3085688 -0.3192771
## [145] -0.2664989 -0.2990698 -0.3036832 -0.3251725 -0.2636176 -0.3137556
## [151] -0.2726269 -0.2947033 -0.2793055 -0.3137556 -0.3137556 -0.2664989
## [157] -0.3314877 -0.3251725 -0.3085688 -0.3192771 -0.3085688 -0.3137556
## [163] -0.2556119 -0.2828790 -0.3314877 -0.2990698 -0.3085688 -0.3192771
## [169] -0.2694991 -0.2664989 -0.2947033 -0.3137556 -0.2866261 -0.3251725
## [175] -0.2947033 -0.2636176 -0.2866261 -0.3085688 -0.3192771 -0.3085688
## [181] -0.2694991 -0.2461963 -0.3314877 -0.2694991 -0.3137556 -0.3036832
## [187] -0.2793055 -0.2990698 -0.2905618 -0.2990698 -0.3192771 -0.2726269
## [193] -0.2866261 -0.3036832 -0.3036832 -0.2556119 -0.3085688 -0.2947033
## [199] -0.2758922 -0.3137556 -0.3192771 -0.2793055 -0.2866261 -0.2793055
## [205] -0.2905618 -0.3137556 -0.2990698 -0.3085688 -0.2507422 -0.2531342
## [211] -0.3085688 -0.2556119 -0.2990698 -0.3137556 -0.3251725 -0.2461963
## [217] -0.2828790 -0.3251725 -0.3314877 -0.2507422 -0.2694991 -0.3085688
## [223] -0.3192771 -0.2866261 -0.2905618 -0.3251725 -0.2905618 -0.3137556
## [229] -0.2636176 -0.3251725 -0.3085688 -0.2990698 -0.2608474 -0.2947033
## [235] -0.2947033 -0.2828790 -0.2990698 -0.3036832 -0.2905618 -0.3192771
## [241] -0.2947033 -0.3314877 -0.2828790 -0.3036832 -0.3382773 -0.2726269
## [247] -0.2828790 -0.2664989 -0.2990698 -0.2758922 -0.3036832 -0.2828790
## [253] -0.2990698 -0.3192771 -0.3036832 -0.2694991 -0.2664989 -0.3192771
## [259] -0.2990698 -0.2866261 -0.2828790 -0.2828790 -0.3137556 -0.2726269
## [265] -0.2947033 -0.3085688 -0.2758922 -0.2905618 -0.2793055 -0.3137556
## [271] -0.2581810 -0.3137556 -0.2758922 -0.2694991 -0.3382773 -0.3314877
## [277] -0.3137556 -0.3137556 -0.2905618 -0.2726269 -0.2793055 -0.3314877
## [283] -0.3085688 -0.3314877 -0.2793055 -0.2947033 -0.2726269 -0.2947033
## [289] -0.2947033 -0.2531342 -0.2905618 -0.2793055 -0.3137556 -0.3036832
## [295] -0.3251725 -0.2947033 -0.3382773 -0.3036832 -0.2507422 -0.2758922
## [301] -0.2758922 -0.3085688 -0.2947033 -0.2990698 -0.3192771 -0.3137556
## [307] -0.3137556 -0.3314877 -0.2905618 -0.2664989 -0.2793055 -0.3036832
## [313] -0.2828790 -0.3251725 -0.3137556 -0.2990698 -0.2947033 -0.3036832
## [319] -0.3137556 -0.2531342 -0.2990698 -0.3137556 -0.2636176 -0.3251725
## [325] -0.3085688 -0.2905618 -0.2793055 -0.2947033 -0.2866261 -0.3382773
## [331] -0.2905618 -0.3251725 -0.3314877 -0.2694991 -0.2866261 -0.3456063
## [337] -0.3085688 -0.3085688 -0.3192771 -0.2793055 -0.3251725 -0.2531342
## [343] -0.2793055 -0.2726269 -0.3036832 -0.2905618 -0.2947033 -0.3036832
## [349] -0.2866261 -0.2905618 -0.2905618 -0.2556119 -0.3137556 -0.3192771
## [355] -0.3036832 -0.3036832 -0.2507422 -0.3251725 -0.2726269 -0.2694991
## [361] -0.2905618 -0.2726269 -0.2484312 -0.3456063 -0.3085688 -0.3314877
## [367] -0.2581810 -0.2990698 -0.3314877 -0.2990698 -0.3085688 -0.2905618
## [373] -0.2990698 -0.3192771 -0.3192771 -0.2636176 -0.2990698 -0.3036832
## [379] -0.3251725 -0.2947033 -0.2581810 -0.2905618 -0.3085688 -0.3036832
## [385] -0.2694991 -0.2990698 -0.3192771 -0.3137556 -0.3314877 -0.2947033
## [391] -0.2758922 -0.3192771 -0.2758922 -0.2947033 -0.2581810 -0.2758922
## [397] -0.2947033 -0.2828790 -0.3622145 -0.2758922 -0.2905618 -0.2866261
## [403] -0.2990698 -0.3192771 -0.2828790 -0.2866261 -0.2828790 -0.3251725
## [409] -0.2990698 -0.3036832 -0.3085688 -0.2664989 -0.2947033 -0.2866261
## [415] -0.2726269 -0.2947033 -0.3251725 -0.2507422 -0.3314877 -0.3314877
## [421] -0.2990698 -0.3036832 -0.2793055 -0.3251725 -0.3314877 -0.2990698
## [427] -0.2905618 -0.2793055 -0.2694991 -0.3085688 -0.3085688 -0.3192771
## [433] -0.3251725 -0.3036832 -0.2990698 -0.2947033 -0.2947033 -0.3251725
## [439] -0.3137556 -0.2828790 -0.2581810 -0.2793055 -0.2947033 -0.2905618
## [445] -0.2440334 -0.2608474 -0.3137556 -0.3085688 -0.2484312 -0.2990698
## [451] -0.2905618 -0.2484312 -0.2507422 -0.3085688 -0.3456063 -0.2947033
## [457] -0.2828790 -0.2608474 -0.3036832 -0.3137556 -0.2758922 -0.3192771
## [463] -0.3137556 -0.2947033 -0.3314877 -0.3137556 -0.2793055 -0.2828790
## [469] -0.2758922 -0.2608474 -0.2636176 -0.3192771 -0.2990698 -0.3456063
## [475] -0.2947033 -0.2581810 -0.3314877 -0.3036832 -0.3137556 -0.3036832
## [481] -0.3085688 -0.2905618 -0.3085688 -0.3085688 -0.2947033 -0.2990698
## [487] -0.2866261 -0.2990698 -0.3085688 -0.3036832 -0.3251725 -0.3382773
## [493] -0.2905618 -0.2947033 -0.2694991 -0.2726269 -0.3137556 -0.2608474
## [499] -0.2905618 -0.2664989 -0.3036832 -0.2947033 -0.3192771 -0.3314877
## [505] -0.2419386 -0.3192771 -0.2866261 -0.2758922 -0.3192771 -0.3036832
## [511] -0.2828790 -0.2636176 -0.2581810 -0.2636176 -0.3382773 -0.2581810
## [517] -0.2507422 -0.2664989 -0.2990698 -0.2905618 -0.3251725 -0.2758922
## [523] -0.2947033 -0.2947033 -0.2828790 -0.3314877 -0.2905618 -0.3192771
## [529] -0.2905618 -0.2694991 -0.2793055 -0.2866261 -0.2947033 -0.2758922
## [535] -0.3251725 -0.2828790 -0.3085688 -0.2758922 -0.2694991 -0.3251725
## [541] -0.2947033 -0.2866261 -0.2866261 -0.2905618 -0.3036832 -0.2947033
## [547] -0.2866261 -0.2905618 -0.2828790 -0.2866261 -0.2866261 -0.3314877
## [553] -0.2531342 -0.2664989 -0.2828790 -0.3137556 -0.2905618 -0.2636176
## [559] -0.2828790 -0.2556119 -0.2531342 -0.2947033 -0.3085688 -0.2990698
## [565] -0.2947033 -0.2556119 -0.3085688 -0.3085688 -0.2664989 -0.2866261
## [571] -0.2947033 -0.2905618 -0.3085688 -0.2866261 -0.2726269 -0.2793055
## [577] -0.3137556 -0.2694991 -0.3251725 -0.2905618 -0.3137556 -0.3085688
## [583] -0.2664989 -0.2531342 -0.3251725 -0.3251725 -0.2694991 -0.3251725
## [589] -0.2905618 -0.2664989 -0.2793055 -0.2664989 -0.2694991 -0.3314877
## [595] -0.3314877 -0.3137556 -0.2905618 -0.3192771 -0.3192771 -0.3137556
## [601] -0.2990698 -0.2636176 -0.3137556 -0.2636176 -0.2947033 -0.2947033
## [607] -0.2793055 -0.3192771 -0.2758922 -0.2664989 -0.2726269 -0.3036832
## [613] -0.2905618 -0.2793055 -0.2793055 -0.3314877 -0.3036832 -0.2726269
## [619] -0.3085688 -0.2905618 -0.2636176 -0.3036832 -0.2828790 -0.2905618
## [625] -0.2828790 -0.3251725 -0.2556119 -0.2664989 -0.2990698 -0.2556119
## [631] -0.3085688 -0.2793055 -0.2905618 -0.2828790 -0.2990698 -0.3137556
## [637] -0.3192771 -0.2793055 -0.2947033 -0.2828790 -0.3314877 -0.2866261
## [643] -0.3192771 -0.2828790 -0.2828790 -0.2758922 -0.2664989 -0.2828790
## [649] -0.3251725 -0.2866261 -0.2581810 -0.2947033 -0.3036832 -0.3085688
## [655] -0.2793055 -0.2866261 -0.2828790 -0.2793055 -0.2828790 -0.2866261
## [661] -0.2866261 -0.2531342 -0.2556119 -0.3314877 -0.3251725 -0.2726269
## [667] -0.2947033 -0.3085688 -0.3036832 -0.2581810 -0.2905618 -0.3314877
## [673] -0.2608474 -0.2866261 -0.3137556 -0.2726269 -0.3251725 -0.3085688
## [679] -0.3382773 -0.2664989 -0.2866261 -0.2828790 -0.2726269 -0.3137556
## [685] -0.2905618 -0.2636176 -0.2726269 -0.2947033 -0.2828790 -0.2694991
## [691] -0.2531342 -0.3137556 -0.3192771 -0.3456063 -0.2758922 -0.3192771
## [697] -0.2947033 -0.2947033 -0.2905618 -0.2484312 -0.3192771 -0.2905618
## [703] -0.2793055 -0.2828790 -0.2726269 -0.2608474 -0.2990698 -0.3314877
## [709] -0.3137556 -0.2793055 -0.3314877 -0.3382773 -0.3137556 -0.2793055
## [715] -0.2866261 -0.2905618 -0.2866261 -0.2636176 -0.3137556 -0.3251725
## [721] -0.3382773 -0.2758922 -0.2947033 -0.3036832 -0.2866261 -0.2866261
## [727] -0.2866261 -0.3036832 -0.2947033 -0.3251725 -0.3085688 -0.2905618
## [733] -0.2947033 -0.2793055 -0.2664989 -0.3036832 -0.3314877 -0.2905618
## [739] -0.2507422 -0.2905618 -0.2758922 -0.2758922 -0.2866261 -0.2636176
## [745] -0.2905618 -0.3085688 -0.2947033 -0.2556119 -0.2694991 -0.2947033
## [751] -0.3036832 -0.2793055 -0.2581810 -0.3192771 -0.2947033 -0.2828790
## [757] -0.3192771 -0.3085688 -0.2581810 -0.2905618 -0.3137556 -0.2440334
## [763] -0.3251725 -0.2636176 -0.2866261 -0.3036832 -0.3137556 -0.3137556
## [769] -0.2694991 -0.2608474 -0.3251725 -0.3137556 -0.3192771 -0.3314877
## [775] -0.3085688 -0.3085688 -0.2440334 -0.3314877 -0.2726269 -0.2793055
## [781] -0.2866261 -0.2636176 -0.3314877 -0.3192771 -0.3192771 -0.3137556
## [787] -0.2694991 -0.2758922 -0.2636176 -0.3314877 -0.2905618 -0.2866261
## [793] -0.2793055 -0.2905618 -0.2905618 -0.2828790 -0.2990698 -0.3251725
## [799] -0.3036832 -0.2581810 -0.2581810 -0.2905618 -0.3192771 -0.2581810
## [805] -0.3137556 -0.2581810 -0.3085688 -0.2608474 -0.3085688 -0.2726269
## [811] -0.2905618 -0.2828790 -0.3314877 -0.2608474 -0.3251725 -0.3085688
## [817] -0.3036832 -0.2608474 -0.2828790 -0.2507422 -0.2947033 -0.2608474
## [823] -0.2608474 -0.2793055 -0.2866261 -0.2990698 -0.2758922 -0.3192771
## [829] -0.3036832 -0.2866261 -0.2758922 -0.2866261 -0.3192771 -0.2905618
## [835] -0.3085688 -0.2664989 -0.3036832 -0.2664989 -0.2947033 -0.3314877
## [841] -0.2608474 -0.3036832 -0.2726269 -0.2828790 -0.3382773 -0.2758922
## [847] -0.2947033 -0.2694991 -0.2758922 -0.2793055 -0.3036832 -0.2828790
## [853] -0.3314877 -0.2531342 -0.3036832 -0.3192771 -0.2726269 -0.2484312
## [859] -0.2990698 -0.3137556 -0.2664989 -0.2947033 -0.3192771 -0.2694991
## [865] -0.3314877 -0.3085688 -0.2608474 -0.3137556 -0.2484312 -0.2828790
## [871] -0.2866261 -0.2947033 -0.3251725 -0.2947033 -0.2905618 -0.2947033
## [877] -0.2758922 -0.2990698 -0.3036832 -0.3036832 -0.3085688 -0.2531342
## [883] -0.2947033 -0.2905618 -0.2636176 -0.2581810 -0.3314877 -0.3382773
## [889] -0.2581810 -0.3251725 -0.2636176 -0.2866261 -0.3036832 -0.2758922
## [895] -0.3192771 -0.3036832 -0.2793055 -0.2828790 -0.3085688 -0.2636176
## [901] -0.2793055 -0.3137556 -0.2581810 -0.3314877 -0.2461963 -0.2507422
## [907] -0.2828790 -0.3036832 -0.2828790 -0.3382773 -0.3314877 -0.2758922
## [913] -0.2990698 -0.3251725 -0.3036832 -0.2726269 -0.2947033 -0.3137556
## [919] -0.2828790 -0.2905618 -0.2990698 -0.2581810 -0.2636176 -0.2484312
## [925] -0.2866261 -0.2990698 -0.3085688 -0.2828790 -0.2866261 -0.3314877
## [931] -0.3314877 -0.2947033 -0.3085688 -0.2664989 -0.3036832 -0.2990698
## [937] -0.2581810 -0.2726269 -0.3192771 -0.3192771 -0.2947033 -0.2905618
## [943] -0.3192771 -0.2990698 -0.3085688 -0.3456063 -0.2758922 -0.3036832
## [949] -0.2726269 -0.3251725 -0.3251725 -0.2531342 -0.3192771 -0.2608474
## [955] -0.2581810 -0.3382773 -0.3036832 -0.3036832 -0.3036832 -0.2608474
## [961] -0.3036832 -0.2694991 -0.3314877 -0.2664989 -0.3314877 -0.3137556
## [967] -0.2726269 -0.2990698 -0.2828790 -0.3456063 -0.2828790 -0.2694991
## [973] -0.2866261 -0.2531342 -0.3192771 -0.3036832 -0.2866261 -0.3314877
## [979] -0.2866261 -0.3314877 -0.3192771 -0.3085688 -0.2866261 -0.2793055
## [985] -0.2905618 -0.2905618 -0.2905618 -0.3036832 -0.3192771 -0.2556119

lambda değeri -0.4 bulunmuştur. Bu değere göre log veya kök dönüşümü uygun olabilir. Hatta kök dönüşümüne biraz daha yakındır. Ancak lambda değeri negatif olduğu için ters karekök dönüşümü ve ters logaritmik dönüşüm uygulanacaktır.

height değişkeni

height_tukey <- transformTukey(train$height, plotit=FALSE)
## 
##     lambda      W Shapiro.p.value
## 483   2.05 0.9849       1.318e-08
## 
## if (lambda >  0){TRANS = x ^ lambda} 
## if (lambda == 0){TRANS = log(x)} 
## if (lambda <  0){TRANS = -1 * x ^ lambda}
height_tukey
##   [1] 34086.16 34086.16 37442.30 31938.32 31938.32 35186.94 36305.65 38596.90
##   [9] 34086.16 33003.29 30891.24 33003.29 33003.29 29862.02 38596.90 36305.65
##  [17] 25923.56 37442.30 38596.90 35186.94 35186.94 27857.14 35186.94 36305.65
##  [25] 30891.24 36305.65 29862.02 35186.94 33003.29 33003.29 35186.94 33003.29
##  [33] 30891.24 33003.29 36305.65 29862.02 36305.65 33003.29 31938.32 30891.24
##  [41] 34086.16 29862.02 40960.01 35186.94 30891.24 30891.24 37442.30 35186.94
##  [49] 33003.29 33003.29 35186.94 33003.29 39769.47 33003.29 33003.29 36305.65
##  [57] 33003.29 36305.65 31938.32 29862.02 31938.32 33003.29 33003.29 31938.32
##  [65] 35186.94 34086.16 38596.90 37442.30 36305.65 42168.56 35186.94 33003.29
##  [73] 40960.01 37442.30 28850.66 31938.32 29862.02 30891.24 34086.16 30891.24
##  [81] 31938.32 29862.02 34086.16 30891.24 35186.94 30891.24 36305.65 36305.65
##  [89] 35186.94 35186.94 35186.94 35186.94 37442.30 35186.94 36305.65 34086.16
##  [97] 36305.65 37442.30 35186.94 30891.24 39769.47 39769.47 35186.94 31938.32
## [105] 36305.65 31938.32 29862.02 36305.65 39769.47 35186.94 35186.94 31938.32
## [113] 35186.94 35186.94 33003.29 30891.24 36305.65 33003.29 38596.90 36305.65
## [121] 38596.90 30891.24 37442.30 36305.65 34086.16 29862.02 30891.24 29862.02
## [129] 37442.30 33003.29 35186.94 37442.30 35186.94 28850.66 38596.90 35186.94
## [137] 36305.65 36305.65 35186.94 34086.16 31938.32 35186.94 34086.16 31938.32
## [145] 34086.16 33003.29 30891.24 27857.14 36305.65 33003.29 30891.24 35186.94
## [153] 33003.29 33003.29 36305.65 30891.24 33003.29 33003.29 33003.29 35186.94
## [161] 30891.24 30891.24 35186.94 33003.29 31938.32 31938.32 30891.24 35186.94
## [169] 37442.30 30891.24 37442.30 35186.94 31938.32 34086.16 38596.90 35186.94
## [177] 36305.65 33003.29 31938.32 33003.29 36305.65 35186.94 34086.16 33003.29
## [185] 33003.29 38596.90 33003.29 35186.94 33003.29 37442.30 31938.32 36305.65
## [193] 35186.94 38596.90 33003.29 28850.66 33003.29 34086.16 35186.94 34086.16
## [201] 34086.16 36305.65 36305.65 34086.16 31938.32 35186.94 36305.65 33003.29
## [209] 34086.16 36305.65 29862.02 37442.30 30891.24 33003.29 31938.32 37442.30
## [217] 35186.94 35186.94 36305.65 35186.94 31938.32 33003.29 36305.65 34086.16
## [225] 42168.56 35186.94 33003.29 37442.30 34086.16 38596.90 42168.56 33003.29
## [233] 29862.02 29862.02 30891.24 34086.16 31938.32 34086.16 30891.24 35186.94
## [241] 36305.65 34086.16 36305.65 35186.94 31938.32 29862.02 38596.90 36305.65
## [249] 31938.32 31938.32 37442.30 35186.94 37442.30 36305.65 36305.65 34086.16
## [257] 36305.65 33003.29 31938.32 37442.30 34086.16 33003.29 34086.16 34086.16
## [265] 31938.32 34086.16 37442.30 38596.90 35186.94 37442.30 35186.94 36305.65
## [273] 35186.94 33003.29 33003.29 37442.30 34086.16 31938.32 36305.65 34086.16
## [281] 36305.65 31938.32 34086.16 36305.65 36305.65 33003.29 31938.32 34086.16
## [289] 31938.32 37442.30 37442.30 35186.94 30891.24 37442.30 31938.32 35186.94
## [297] 29862.02 37442.30 36305.65 37442.30 31938.32 36305.65 37442.30 35186.94
## [305] 36305.65 38596.90 34086.16 36305.65 31938.32 28850.66 34086.16 37442.30
## [313] 34086.16 33003.29 36305.65 31938.32 29862.02 33003.29 35186.94 35186.94
## [321] 31938.32 34086.16 39769.47 34086.16 30891.24 33003.29 37442.30 37442.30
## [329] 36305.65 33003.29 34086.16 37442.30 37442.30 36305.65 33003.29 34086.16
## [337] 33003.29 30891.24 31938.32 31938.32 34086.16 23156.59 38596.90 36305.65
## [345] 33003.29 36305.65 35186.94 36305.65 31938.32 34086.16 35186.94 37442.30
## [353] 35186.94 30891.24 35186.94 37442.30 33003.29 35186.94 36305.65 33003.29
## [361] 31938.32 34086.16 37442.30 34086.16 30891.24 35186.94 35186.94 29862.02
## [369] 36305.65 37442.30 34086.16 30891.24 34086.16 40960.01 29862.02 35186.94
## [377] 30891.24 36305.65 35186.94 36305.65 36305.65 33003.29 34086.16 33003.29
## [385] 33003.29 33003.29 30891.24 33003.29 35186.94 33003.29 34086.16 34086.16
## [393] 29862.02 37442.30 34086.16 28850.66 33003.29 33003.29 34086.16 31938.32
## [401] 37442.30 34086.16 35186.94 33003.29 34086.16 28850.66 31938.32 35186.94
## [409] 34086.16 36305.65 36305.65 31938.32 35186.94 31938.32 29862.02 36305.65
## [417] 36305.65 39769.47 34086.16 29862.02 34086.16 31938.32 29862.02 31938.32
## [425] 37442.30 36305.65 28850.66 35186.94 36305.65 29862.02 35186.94 30891.24
## [433] 34086.16 34086.16 35186.94 36305.65 28850.66 29862.02 31938.32 36305.65
## [441] 37442.30 35186.94 33003.29 33003.29 35186.94 35186.94 40960.01 34086.16
## [449] 36305.65 30891.24 37442.30 35186.94 38596.90 36305.65 34086.16 31938.32
## [457] 35186.94 37442.30 35186.94 35186.94 31938.32 29862.02 28850.66 35186.94
## [465] 35186.94 35186.94 37442.30 42168.56 36305.65 33003.29 38596.90 34086.16
## [473] 30891.24 39769.47 36305.65 38596.90 33003.29 36305.65 31938.32 34086.16
## [481] 34086.16 38596.90 37442.30 35186.94 30891.24 33003.29 31938.32 34086.16
## [489] 39769.47 31938.32 31938.32 31938.32 31938.32 34086.16 33003.29 30891.24
## [497] 27857.14 30891.24 31938.32 30891.24 35186.94 35186.94 31938.32 38596.90
## [505] 35186.94 38596.90 28850.66 31938.32 31938.32 30891.24 35186.94 34086.16
## [513] 34086.16 36305.65 34086.16 31938.32 34086.16 37442.30 34086.16 30891.24
## [521] 33003.29 38596.90 34086.16 34086.16 34086.16 35186.94 35186.94 33003.29
## [529] 33003.29 37442.30 36305.65 37442.30 34086.16 34086.16 35186.94 31938.32
## [537] 33003.29 26881.44 30891.24 38596.90 36305.65 36305.65 36305.65 31938.32
## [545] 29862.02 29862.02 34086.16 34086.16 29862.02 34086.16 40960.01 30891.24
## [553] 29862.02 36305.65 35186.94 31938.32 31938.32 29862.02 35186.94 37442.30
## [561] 35186.94 33003.29 33003.29 38596.90 36305.65 34086.16 36305.65 33003.29
## [569] 30891.24 33003.29 38596.90 31938.32 36305.65 31938.32 33003.29 27857.14
## [577] 35186.94 42168.56 34086.16 34086.16 34086.16 31938.32 38596.90 37442.30
## [585] 34086.16 35186.94 33003.29 36305.65 34086.16 33003.29 39769.47 31938.32
## [593] 39769.47 33003.29 34086.16 35186.94 31938.32 36305.65 31938.32 28850.66
## [601] 30891.24 36305.65 36305.65 33003.29 31938.32 29862.02 34086.16 36305.65
## [609] 31938.32 34086.16 33003.29 38596.90 31938.32 38596.90 34086.16 34086.16
## [617] 29862.02 33003.29 34086.16 33003.29 31938.32 34086.16 31938.32 35186.94
## [625] 33003.29 31938.32 38596.90 33003.29 34086.16 33003.29 30891.24 29862.02
## [633] 33003.29 34086.16 34086.16 36305.65 37442.30 38596.90 31938.32 38596.90
## [641] 37442.30 35186.94 34086.16 36305.65 38596.90 36305.65 31938.32 33003.29
## [649] 35186.94 35186.94 27857.14 30891.24 34086.16 37442.30 33003.29 39769.47
## [657] 36305.65 35186.94 35186.94 30891.24 31938.32 35186.94 36305.65 36305.65
## [665] 37442.30 35186.94 28850.66 33003.29 30891.24 33003.29 35186.94 33003.29
## [673] 33003.29 34086.16 37442.30 30891.24 35186.94 31938.32 30891.24 29862.02
## [681] 38596.90 34086.16 37442.30 31938.32 37442.30 34086.16 35186.94 34086.16
## [689] 35186.94 31938.32 34086.16 33003.29 36305.65 31938.32 36305.65 36305.65
## [697] 36305.65 36305.65 31938.32 34086.16 35186.94 34086.16 34086.16 35186.94
## [705] 36305.65 30891.24 34086.16 35186.94 31938.32 34086.16 30891.24 37442.30
## [713] 28850.66 33003.29 33003.29 33003.29 33003.29 38596.90 36305.65 36305.65
## [721] 29862.02 37442.30 35186.94 38596.90 30891.24 31938.32 30891.24 35186.94
## [729] 36305.65 34086.16 30891.24 28850.66 36305.65 35186.94 34086.16 33003.29
## [737] 31938.32 33003.29 37442.30 36305.65 36305.65 34086.16 36305.65 31938.32
## [745] 33003.29 31938.32 34086.16 37442.30 37442.30 31938.32 30891.24 31938.32
## [753] 40960.01 38596.90 34086.16 38596.90 34086.16 37442.30 30891.24 27857.14
## [761] 33003.29 37442.30 34086.16 29862.02 37442.30 35186.94 39769.47 30891.24
## [769] 35186.94 28850.66 34086.16 36305.65 34086.16 37442.30 33003.29 34086.16
## [777] 35186.94 29862.02 36305.65 36305.65 34086.16 35186.94 31938.32 35186.94
## [785] 33003.29 39769.47 37442.30 30891.24 35186.94 33003.29 35186.94 33003.29
## [793] 35186.94 30891.24 34086.16 31938.32 39769.47 33003.29 36305.65 33003.29
## [801] 31938.32 29862.02 35186.94 34086.16 31938.32 38596.90 34086.16 36305.65
## [809] 36305.65 33003.29 38596.90 37442.30 30891.24 30891.24 31938.32 33003.29
## [817] 36305.65 29862.02 35186.94 28850.66 31938.32 30891.24 31938.32 40960.01
## [825] 37442.30 33003.29 36305.65 35186.94 33003.29 34086.16 37442.30 34086.16
## [833] 39769.47 33003.29 35186.94 34086.16 35186.94 35186.94 31938.32 34086.16
## [841] 38596.90 33003.29 33003.29 35186.94 35186.94 33003.29 36305.65 39769.47
## [849] 30891.24 34086.16 33003.29 35186.94 36305.65 29862.02 30891.24 35186.94
## [857] 31938.32 30891.24 38596.90 37442.30 36305.65 35186.94 29862.02 37442.30
## [865] 33003.29 34086.16 35186.94 37442.30 35186.94 35186.94 29862.02 35186.94
## [873] 31938.32 30891.24 34086.16 37442.30 31938.32 34086.16 36305.65 30891.24
## [881] 34086.16 35186.94 37442.30 28850.66 30891.24 30891.24 34086.16 38596.90
## [889] 36305.65 38596.90 31938.32 33003.29 35186.94 40960.01 33003.29 29862.02
## [897] 29862.02 33003.29 27857.14 34086.16 36305.65 35186.94 30891.24 36305.65
## [905] 31938.32 33003.29 33003.29 30891.24 28850.66 35186.94 31938.32 31938.32
## [913] 34086.16 30891.24 27857.14 33003.29 34086.16 35186.94 33003.29 35186.94
## [921] 36305.65 30891.24 30891.24 34086.16 30891.24 36305.65 36305.65 30891.24
## [929] 30891.24 33003.29 35186.94 37442.30 37442.30 34086.16 33003.29 28850.66
## [937] 36305.65 33003.29 35186.94 34086.16 33003.29 28850.66 37442.30 35186.94
## [945] 29862.02 34086.16 34086.16 33003.29 30891.24 35186.94 35186.94 31938.32
## [953] 31938.32 33003.29 36305.65 30891.24 37442.30 31938.32 35186.94 35186.94
## [961] 37442.30 34086.16 37442.30 33003.29 34086.16 40960.01 27857.14 33003.29
## [969] 34086.16 30891.24 24061.15 36305.65 38596.90 39769.47 33003.29 31938.32
## [977] 36305.65 33003.29 36305.65 29862.02 34086.16 34086.16 35186.94 29862.02
## [985] 35186.94 35186.94 29862.02 37442.30 35186.94 35186.94

lambda değeri 1.825 bulunmuştur. Üstel dönüşüm için uygun görünüyor. 1.825 değeri, 2’ye daha yakın olduğu için kare dönüşümü denenecektir.

weight değişkeni

weight_tukey <- transformTukey(train$weight, plotit=FALSE)
## 
##     lambda      W Shapiro.p.value
## 353   -1.2 0.9973         0.09188
## 
## if (lambda >  0){TRANS = x ^ lambda} 
## if (lambda == 0){TRANS = log(x)} 
## if (lambda <  0){TRANS = -1 * x ^ lambda}
weight_tukey
##   [1] -0.007240098 -0.008776221 -0.007940594 -0.011323103 -0.005195663
##   [6] -0.006930927 -0.007176262 -0.008339259 -0.008017500 -0.007717791
##  [11] -0.010504678 -0.006181874 -0.007575529 -0.007940594 -0.005490429
##  [16] -0.006813950 -0.011323103 -0.005302728 -0.005058938 -0.008175479
##  [21] -0.009059065 -0.009677829 -0.005302728 -0.007438002 -0.009788538
##  [26] -0.008095783 -0.009788538 -0.008339259 -0.008776221 -0.011470955
##  [31] -0.010255559 -0.005230908 -0.008423423 -0.009257075 -0.006380217
##  [36] -0.011777523 -0.006536785 -0.008423423 -0.007575529 -0.009257075
##  [41] -0.007865029 -0.007575529 -0.006645128 -0.006930927 -0.009257075
##  [46] -0.010899824 -0.008509158 -0.007940594 -0.007575529 -0.007940594
##  [51] -0.008776221 -0.006380217 -0.007113450 -0.005490429 -0.005490429
##  [56] -0.007575529 -0.008509158 -0.007940594 -0.008339259 -0.006431636
##  [61] -0.009257075 -0.007575529 -0.007865029 -0.010017061 -0.008685511
##  [66] -0.009901591 -0.007240098 -0.006483820 -0.006645128 -0.007304983
##  [71] -0.008596506 -0.006756810 -0.004628473 -0.008962947 -0.008596506
##  [76] -0.009059065 -0.009901591 -0.010017061 -0.010378748 -0.010378748
##  [81] -0.009257075 -0.008256625 -0.008339259 -0.007051639 -0.008596506
##  [86] -0.009463166 -0.006930927 -0.006756810 -0.006380217 -0.006181874
##  [91] -0.008095783 -0.007940594 -0.007176262 -0.008175479 -0.006645128
##  [96] -0.008868684 -0.009359081 -0.004142083 -0.005490429 -0.010017061
## [101] -0.006134045 -0.006380217 -0.009257075 -0.008339259 -0.006181874
## [106] -0.010017061 -0.010378748 -0.006536785 -0.007240098 -0.009901591
## [111] -0.005690681 -0.009569394 -0.008095783 -0.009257075 -0.007790772
## [116] -0.008776221 -0.006134045 -0.007940594 -0.006930927 -0.003456344
## [121] -0.006483820 -0.007717791 -0.006645128 -0.007438002 -0.006279610
## [126] -0.009901591 -0.007240098 -0.008256625 -0.009157088 -0.007940594
## [131] -0.005904743 -0.009788538 -0.008095783 -0.009257075 -0.008509158
## [136] -0.008776221 -0.007506188 -0.005490429 -0.008095783 -0.008339259
## [141] -0.005302728 -0.004744424 -0.008685511 -0.006380217 -0.007575529
## [146] -0.008596506 -0.011323103 -0.010765121 -0.007176262 -0.009257075
## [151] -0.009157088 -0.006134045 -0.006380217 -0.005568957 -0.006536785
## [156] -0.009257075 -0.006930927 -0.010765121 -0.009059065 -0.005690681
## [161] -0.009788538 -0.009257075 -0.007940594 -0.006380217 -0.007051639
## [166] -0.006380217 -0.010504678 -0.007940594 -0.007575529 -0.007575529
## [171] -0.007940594 -0.007575529 -0.007240098 -0.005126465 -0.007176262
## [176] -0.006813950 -0.007717791 -0.008339259 -0.009677829 -0.009677829
## [181] -0.008596506 -0.008685511 -0.007790772 -0.007240098 -0.005904743
## [186] -0.006134045 -0.009257075 -0.006930927 -0.009788538 -0.008596506
## [191] -0.007940594 -0.007717791 -0.008017500 -0.005529437 -0.007940594
## [196] -0.009257075 -0.009788538 -0.004960654 -0.006813950 -0.008509158
## [201] -0.006990806 -0.005904743 -0.007240098 -0.006483820 -0.009788538
## [206] -0.008175479 -0.006930927 -0.009901591 -0.007940594 -0.007438002
## [211] -0.010135024 -0.006930927 -0.010017061 -0.008423423 -0.008776221
## [216] -0.006086890 -0.006380217 -0.008339259 -0.007240098 -0.005904743
## [221] -0.008509158 -0.010017061 -0.007865029 -0.007240098 -0.004834937
## [226] -0.006040396 -0.009463166 -0.007240098 -0.008175479 -0.006483820
## [231] -0.006279610 -0.006930927 -0.010378748 -0.009788538 -0.009257075
## [236] -0.008175479 -0.007940594 -0.007940594 -0.010135024 -0.007940594
## [241] -0.007240098 -0.007575529 -0.007575529 -0.009059065 -0.006645128
## [246] -0.008596506 -0.005266593 -0.007240098 -0.009059065 -0.010378748
## [251] -0.007240098 -0.008339259 -0.007240098 -0.007646053 -0.007176262
## [256] -0.006645128 -0.008339259 -0.008339259 -0.009677829 -0.007240098
## [261] -0.007575529 -0.007438002 -0.009257075 -0.007790772 -0.007575529
## [266] -0.009569394 -0.006930927 -0.007575529 -0.009059065 -0.007575529
## [271] -0.007575529 -0.008596506 -0.009257075 -0.008962947 -0.007717791
## [276] -0.007438002 -0.009901591 -0.008776221 -0.007240098 -0.009257075
## [281] -0.007575529 -0.011178707 -0.006645128 -0.006536785 -0.007575529
## [286] -0.009059065 -0.005490429 -0.007940594 -0.008175479 -0.006756810
## [291] -0.007240098 -0.007575529 -0.008256625 -0.007717791 -0.009788538
## [296] -0.007940594 -0.009359081 -0.010378748 -0.006645128 -0.007113450
## [301] -0.006380217 -0.008776221 -0.006134045 -0.009059065 -0.007575529
## [306] -0.006645128 -0.008017500 -0.006645128 -0.008509158 -0.010378748
## [311] -0.006930927 -0.007940594 -0.008776221 -0.009788538 -0.007370942
## [316] -0.009788538 -0.009901591 -0.008596506 -0.007240098 -0.007646053
## [321] -0.008339259 -0.006930927 -0.006990806 -0.006756810 -0.007113450
## [326] -0.009901591 -0.007438002 -0.006536785 -0.009569394 -0.009257075
## [331] -0.007575529 -0.007575529 -0.007240098 -0.006134045 -0.004260709
## [336] -0.006813950 -0.007051639 -0.006645128 -0.010135024 -0.008776221
## [341] -0.006380217 -0.009257075 -0.006930927 -0.007575529 -0.008339259
## [346] -0.006483820 -0.009257075 -0.007240098 -0.009463166 -0.009157088
## [351] -0.009901591 -0.007051639 -0.007575529 -0.008339259 -0.006930927
## [356] -0.007790772 -0.007575529 -0.008776221 -0.007790772 -0.008017500
## [361] -0.008509158 -0.007940594 -0.007113450 -0.006930927 -0.006380217
## [366] -0.007790772 -0.007051639 -0.011323103 -0.009157088 -0.007370942
## [371] -0.006536785 -0.010504678 -0.007940594 -0.006871983 -0.008776221
## [376] -0.007240098 -0.011037651 -0.007240098 -0.006134045 -0.007304983
## [381] -0.007240098 -0.009257075 -0.007575529 -0.006700543 -0.007240098
## [386] -0.007240098 -0.007575529 -0.007717791 -0.008509158 -0.008095783
## [391] -0.007940594 -0.008339259 -0.007940594 -0.008175479 -0.005817374
## [396] -0.010017061 -0.009257075 -0.009157088 -0.008596506 -0.011037651
## [401] -0.007865029 -0.005302728 -0.006536785 -0.006930927 -0.005126465
## [406] -0.010135024 -0.009257075 -0.008776221 -0.008339259 -0.006536785
## [411] -0.006645128 -0.009257075 -0.006930927 -0.007575529 -0.009569394
## [416] -0.007940594 -0.005126465 -0.007240098 -0.008339259 -0.009359081
## [421] -0.008962947 -0.009257075 -0.008017500 -0.010017061 -0.007575529
## [426] -0.007717791 -0.010899824 -0.007790772 -0.008339259 -0.009677829
## [431] -0.008175479 -0.011936499 -0.009463166 -0.007051639 -0.007940594
## [436] -0.006645128 -0.006930927 -0.009569394 -0.007940594 -0.007240098
## [441] -0.006134045 -0.009788538 -0.010135024 -0.008868684 -0.008017500
## [446] -0.007113450 -0.005490429 -0.004600293 -0.005451922 -0.007575529
## [451] -0.006590548 -0.007240098 -0.007304983 -0.007240098 -0.009788538
## [456] -0.009257075 -0.007370942 -0.005949335 -0.006380217 -0.007940594
## [461] -0.009788538 -0.008962947 -0.010633438 -0.007575529 -0.007240098
## [466] -0.008423423 -0.007575529 -0.006380217 -0.007790772 -0.008339259
## [471] -0.006930927 -0.007646053 -0.009257075 -0.007575529 -0.008776221
## [476] -0.006134045 -0.008509158 -0.007865029 -0.008776221 -0.009257075
## [481] -0.008776221 -0.006990806 -0.004142083 -0.006930927 -0.010378748
## [486] -0.009569394 -0.007438002 -0.008685511 -0.005690681 -0.009359081
## [491] -0.010633438 -0.009257075 -0.009257075 -0.008776221 -0.004463991
## [496] -0.007240098 -0.009059065 -0.009463166 -0.008509158 -0.007940594
## [501] -0.007865029 -0.009059065 -0.007575529 -0.005126465 -0.006645128
## [506] -0.007575529 -0.011777523 -0.010378748 -0.008509158 -0.008339259
## [511] -0.006645128 -0.008509158 -0.007240098 -0.007646053 -0.009059065
## [516] -0.007717791 -0.006134045 -0.008017500 -0.007940594 -0.009788538
## [521] -0.005690681 -0.007438002 -0.008017500 -0.007240098 -0.007575529
## [526] -0.010255559 -0.008596506 -0.008776221 -0.008776221 -0.007240098
## [531] -0.007370942 -0.007304983 -0.008423423 -0.007940594 -0.008776221
## [536] -0.009257075 -0.009463166 -0.010633438 -0.009788538 -0.006645128
## [541] -0.008339259 -0.006930927 -0.007575529 -0.009257075 -0.009569394
## [546] -0.008776221 -0.008509158 -0.008017500 -0.011037651 -0.008685511
## [551] -0.006645128 -0.007940594 -0.008776221 -0.006930927 -0.008339259
## [556] -0.011178707 -0.005904743 -0.008596506 -0.007865029 -0.005302728
## [561] -0.005339319 -0.009059065 -0.006700543 -0.005529437 -0.007240098
## [566] -0.007717791 -0.007240098 -0.008685511 -0.007940594 -0.006930927
## [571] -0.006930927 -0.007051639 -0.007717791 -0.008962947 -0.009788538
## [576] -0.006380217 -0.006645128 -0.006230390 -0.008175479 -0.007790772
## [581] -0.005904743 -0.007575529 -0.004572427 -0.007940594 -0.009257075
## [586] -0.005690681 -0.008339259 -0.006930927 -0.007865029 -0.004804417
## [591] -0.007575529 -0.010378748 -0.007176262 -0.008596506 -0.008339259
## [596] -0.008509158 -0.010378748 -0.007865029 -0.008339259 -0.010899824
## [601] -0.005058938 -0.008175479 -0.007575529 -0.006930927 -0.007940594
## [606] -0.010633438 -0.007240098 -0.007940594 -0.008339259 -0.007575529
## [611] -0.009569394 -0.006813950 -0.008509158 -0.006536785 -0.007790772
## [616] -0.009257075 -0.009901591 -0.007575529 -0.008509158 -0.009788538
## [621] -0.007304983 -0.006930927 -0.008256625 -0.009157088 -0.009257075
## [626] -0.009257075 -0.005904743 -0.008017500 -0.008962947 -0.006645128
## [631] -0.008339259 -0.010899824 -0.007575529 -0.008423423 -0.006380217
## [636] -0.008017500 -0.007575529 -0.007790772 -0.010378748 -0.005732346
## [641] -0.007240098 -0.006134045 -0.006431636 -0.006990806 -0.007575529
## [646] -0.007304983 -0.007790772 -0.009257075 -0.008017500 -0.007790772
## [651] -0.009059065 -0.008339259 -0.006134045 -0.007646053 -0.007438002
## [656] -0.007438002 -0.006645128 -0.007575529 -0.009257075 -0.009463166
## [661] -0.009059065 -0.007240098 -0.005817374 -0.007575529 -0.009059065
## [666] -0.008509158 -0.011622386 -0.010017061 -0.009569394 -0.009059065
## [671] -0.007940594 -0.007304983 -0.008509158 -0.008095783 -0.008339259
## [676] -0.008175479 -0.008509158 -0.009257075 -0.009463166 -0.009569394
## [681] -0.007865029 -0.008339259 -0.004142083 -0.007051639 -0.005490429
## [686] -0.009257075 -0.008339259 -0.006380217 -0.007575529 -0.008596506
## [691] -0.009569394 -0.004960654 -0.006380217 -0.009059065 -0.007790772
## [696] -0.009257075 -0.006930927 -0.004260709 -0.009157088 -0.008017500
## [701] -0.007575529 -0.007370942 -0.005904743 -0.007940594 -0.006756810
## [706] -0.007940594 -0.004960654 -0.006380217 -0.010378748 -0.006380217
## [711] -0.009257075 -0.009359081 -0.009059065 -0.008509158 -0.009257075
## [716] -0.007438002 -0.007940594 -0.005092496 -0.007575529 -0.009257075
## [721] -0.008339259 -0.006134045 -0.008868684 -0.005949335 -0.008685511
## [726] -0.009257075 -0.007717791 -0.007113450 -0.006230390 -0.007575529
## [731] -0.010504678 -0.008776221 -0.007940594 -0.005302728 -0.006086890
## [736] -0.009569394 -0.005904743 -0.007717791 -0.007575529 -0.007240098
## [741] -0.007113450 -0.007940594 -0.005302728 -0.009463166 -0.007113450
## [746] -0.004096315 -0.007575529 -0.007240098 -0.006086890 -0.008776221
## [751] -0.009359081 -0.009788538 -0.007113450 -0.006756810 -0.008095783
## [756] -0.005195663 -0.008339259 -0.007304983 -0.008256625 -0.010135024
## [761] -0.008776221 -0.005904743 -0.009359081 -0.009059065 -0.008339259
## [766] -0.009257075 -0.007575529 -0.008256625 -0.007940594 -0.009788538
## [771] -0.009059065 -0.006645128 -0.006645128 -0.008017500 -0.008962947
## [776] -0.008339259 -0.007240098 -0.008509158 -0.008509158 -0.007370942
## [781] -0.008175479 -0.007940594 -0.007865029 -0.007113450 -0.008776221
## [786] -0.007240098 -0.007506188 -0.009157088 -0.006930927 -0.006431636
## [791] -0.007304983 -0.006380217 -0.007646053 -0.008175479 -0.009059065
## [796] -0.007575529 -0.007717791 -0.008339259 -0.010633438 -0.006645128
## [801] -0.007575529 -0.009257075 -0.007438002 -0.005949335 -0.005732346
## [806] -0.008868684 -0.007575529 -0.006930927 -0.007790772 -0.008776221
## [811] -0.004960654 -0.008017500 -0.008868684 -0.008685511 -0.009059065
## [816] -0.007370942 -0.008776221 -0.008776221 -0.006645128 -0.006930927
## [821] -0.007790772 -0.007575529 -0.007240098 -0.006645128 -0.007575529
## [826] -0.009359081 -0.006813950 -0.007438002 -0.009257075 -0.008339259
## [831] -0.007575529 -0.008685511 -0.007575529 -0.007940594 -0.009059065
## [836] -0.007790772 -0.007438002 -0.007717791 -0.008685511 -0.008776221
## [841] -0.006645128 -0.008423423 -0.007240098 -0.007940594 -0.008596506
## [846] -0.007940594 -0.007646053 -0.006700543 -0.010378748 -0.006645128
## [851] -0.009901591 -0.006645128 -0.007438002 -0.008423423 -0.008509158
## [856] -0.007575529 -0.010765121 -0.008776221 -0.007240098 -0.006813950
## [861] -0.007506188 -0.005690681 -0.008868684 -0.007113450 -0.009569394
## [866] -0.008962947 -0.006645128 -0.009257075 -0.007865029 -0.007240098
## [871] -0.009157088 -0.007240098 -0.009788538 -0.008962947 -0.009257075
## [876] -0.007575529 -0.008175479 -0.007790772 -0.008175479 -0.008776221
## [881] -0.009901591 -0.005774573 -0.006590548 -0.008962947 -0.008339259
## [886] -0.006813950 -0.008017500 -0.007790772 -0.007240098 -0.008175479
## [891] -0.007790772 -0.007940594 -0.007240098 -0.006134045 -0.008339259
## [896] -0.008776221 -0.008776221 -0.009463166 -0.008776221 -0.007940594
## [901] -0.006930927 -0.008095783 -0.010633438 -0.008509158 -0.006181874
## [906] -0.008509158 -0.008596506 -0.006380217 -0.010378748 -0.008776221
## [911] -0.008509158 -0.010135024 -0.007790772 -0.009901591 -0.010504678
## [916] -0.008017500 -0.007176262 -0.006813950 -0.007940594 -0.008339259
## [921] -0.004517613 -0.008962947 -0.009059065 -0.008868684 -0.010504678
## [926] -0.005230908 -0.006645128 -0.008017500 -0.007940594 -0.007304983
## [931] -0.008095783 -0.006930927 -0.007575529 -0.009257075 -0.008423423
## [936] -0.010017061 -0.007240098 -0.009257075 -0.006380217 -0.007717791
## [941] -0.008776221 -0.011037651 -0.006645128 -0.007575529 -0.009788538
## [946] -0.007865029 -0.010255559 -0.008962947 -0.007575529 -0.007113450
## [951] -0.007790772 -0.006930927 -0.009257075 -0.006645128 -0.006930927
## [956] -0.011936499 -0.008339259 -0.007240098 -0.005904743 -0.005994549
## [961] -0.006645128 -0.007790772 -0.007240098 -0.006380217 -0.005490429
## [966] -0.006645128 -0.007575529 -0.008776221 -0.008962947 -0.007240098
## [971] -0.006086890 -0.007575529 -0.008339259 -0.006329547 -0.010017061
## [976] -0.009359081 -0.006645128 -0.006380217 -0.005126465 -0.011037651
## [981] -0.008685511 -0.007176262 -0.007240098 -0.012266534 -0.008256625
## [986] -0.007865029 -0.010378748 -0.008339259 -0.009257075 -0.007646053

lambda değeri -1.175 bulunmuştur. Bu değer mutlak değerce 1’e oldukça yakın. Ancak negatif değer olduğu için yalnızca ters dönüşüm uygulamak uygun olacaktır.

Elbette bu dönüşümleri tek tek uygulayıp değişkenleri tekrar gözden geçirmeliyiz.

8.3 Dönüşüm Uygulaması

8.3.1 bwt dönüşümü

bwt değişkeni için dönüşüm uygulamamaya karar vermiştik. Değişken normale yakındı ancak uç değerleri vardı. Lambda değerine göre bu uç değerlerin, tam olarak dönüşüm gerektirmediğine karar verdik.

8.3.2 age dönüşümü

age değişkeni için ters logaritmik ve ters karekök dönüşümü deneyeceğiz. Bu kararı lambda değeri ile vermiştik. Değişken, sağa çarpık olduğu için iki dönüşüm de uygulanmaya müsaittir.

Ters Logaritmik Dönüşüm

train$age_terslog <- 1/(log10(train$age))

Ters Karekök Dönüşümü

train$age_terskok <- 1/(sqrt(train$age))

Histogramlara bakalım

hist(train$age_terslog, col = "lightpink",main="tersLog(age)")

hist(train$age_terskok, col = "lightpink",main="terskok(age)")

Histogramlara baktığımızda, ters kök dönüşümünün daha iyi sonuç verdiğini görmekteyiz. Normale oldukça yakın bir histogram görmekteyiz.

O halde age değişkeni için en iyi dönüşüm ters kök dönüşümü olmuştur. Ters logaritmik dönüşümünü veri setinden silip diğer değişkenler ile devam edelim.

train$age_terslog <- NULL

8.3.3 height dönüşümü

height değişkeni için kare dönüşümü deneyeceğiz. Bu kararı lambda değeri ile vermiştik. Değişken, hafif sola çarpık olduğu için (ve alacağımız üs > 1 olduğu için) uygulanmaya müsaittir.

train$height_kare <- (train$height)^2
hist(train$height_kare, col = "lightpink",main="kare(height)")

Histogram pek de normal durmamaktadır. Bu değişken için lambda değeri 1.825 bulunmuştu. Bir de değişkenin dönüşümsüz haline bakalım.

hist(train$height, col = "lightpink",main="height")

Karesel dönüşüm ile dönüşümzsüz değişken arasında seçim yapmamız gerekiyor. Histogramdan istediğimiz gibi sonuç alamadığımız için height değişkenini normal hali ile bırakalım.

Dönüşümlü değişkeni silelim.

train$height_kare <- NULL

8.3.4 weight dönüşümü

weight değişkeni için ters dönüşümü deneyeceğiz. Bu kararı lambda değeri ile vermiştik.

train$weight_ters <- 1/(train$weight)
hist(train$weight_ters, col = "lightpink",main="ters(weight)")

Histogramın normale oldukça yakın olduğunu görmekteyiz.

Scatter plotuna da bakalım;

ggplot(train, aes(weight_ters,bwt,label=rownames(train)))+
  geom_point(size=0.90) + geom_text(label=rownames(train),nudge_x=0,check_overlap=T,size=2.5)+
  geom_smooth(method="loess",col="red",se=FALSE)
## `geom_smooth()` using formula = 'y ~ x'

Hafif bir eğrisellik olduğunu görmekteyiz.

Gestation kategorisi için bwt kutu çizimi yapalım.

is_outlier <- function(x) {
  return(x < quantile(x, 0.25) - 1.5 * IQR(x) | x > quantile(x, 0.75) + 1.5 * IQR(x))
 warning = FALSE}

is_outlier
## function(x) {
##   return(x < quantile(x, 0.25) - 1.5 * IQR(x) | x > quantile(x, 0.75) + 1.5 * IQR(x))
##  warning = FALSE}

İlişkiye daha önce bakmıştık. Şuan bunu yapma nedenimiz, potansiyel aykırı değerleri not etmek.

Bunu yaparken dag kullanacağız.

library(dplyr)
dat <- train %>% tibble::rownames_to_column(var="outlier") %>% group_by(gestation) %>%
  mutate(is_outlier=ifelse(is_outlier(bwt), bwt, as.numeric(NA)))

dat
## # A tibble: 990 × 11
## # Groups:   gestation [3]
##    outlier   bwt gestation parity   age height weight smoke age_terskok weight…¹
##    <chr>   <dbl> <fct>     <fct>  <dbl>  <dbl>  <dbl> <fct>       <dbl>    <dbl>
##  1 2        3.20 Healthy   No        33   163.   60.8 No          0.174   0.0165
##  2 3        3.63 Healthy   No        28   163.   51.8 Yes         0.189   0.0193
##  3 5        3.06 Healthy   No        23   170.   56.2 Yes         0.209   0.0178
##  4 6        3.86 Healthy   No        25   157.   41.8 No          0.2     0.0239
##  5 7        3.91 Early     No        33   157.   80.1 No          0.174   0.0125
##  6 8        3.74 Early     No        23   165.   63   No          0.209   0.0159
##  7 10       4.05 Late      No        30   168.   61.2 Yes         0.183   0.0163
##  8 11       3.97 Late      No        27   173.   54   No          0.192   0.0185
##  9 12       4.08 Healthy   No        32   163.   55.8 Yes         0.177   0.0179
## 10 13       4.00 Healthy   No        23   160.   57.6 Yes         0.209   0.0174
## # … with 980 more rows, 1 more variable: is_outlier <dbl>, and abbreviated
## #   variable name ¹​weight_ters
dat$outlier[which(is.na(dat$is_outlier))] <- as.numeric(NA)
ggplot(dat, aes(y=bwt, x=factor(gestation),fill=gestation))+
  geom_boxplot() + 
  geom_text(aes(label=outlier),na.rm=TRUE, nudge_x=0.15,size=3.5)+
  labs(title="gestation kategorileri bazında bwt Kutu Cizimi",x="gestation Kategorileri", y = "bwt")+
  scale_fill_discrete(name = "gestation Kategorileri")

Healthy kategorisinde aykırı değerler olduğunu görmekteyiz. Ancak gözlemler iç içe geçtiği için net olareak hangi gözlem oldukları görünmemekte. Bu sebeple healthy kategorisi için boxplot oluşturalım.

library(ggplot2)

ggplot(dat %>% filter(gestation == "Healthy"), aes(x = factor(gestation), y = bwt)) +
  geom_boxplot() +
  geom_text(aes(label=outlier),na.rm=TRUE,nudge_x=0.15,size=5.5)+
  labs(title = "Healthy Kategorisi için bwt Kutu Çizimi", x = "Gestation Kategorileri", y = "bwt")

Yine görünmüyor. “position” ayarı ile daha okunabilir hale getirelim.

ggplot(dat %>% filter(gestation == "Healthy"), aes(x = factor(gestation), y = bwt)) +
  geom_boxplot() +
  geom_text(aes(label = outlier), na.rm = TRUE, position = position_jitter(width = 0.7), size = 5.5) +
  labs(title = "Healthy Kategorisi için bwt Kutu Çizimi", x = "Gestation Kategorileri", y = "bwt")

Potansiyel aykırı değerler;

240, 410, 557, 633, 739, 748, 815, 873, 1100

310, 530, 1064, 1149, 1150

Weğişkeninin dönüşüme uğrayan halindeki eğriselliğe dönebiliriz. Öncelikle merkezileştirme yapmalıyız.

mean_weight <- mean(train$weight)
train$weight_merk <- (train$weight - mean_weight)
library(ggplot2)
ggplot(train, aes(x = weight_merk, y =bwt )) +
  stat_smooth(method = "lm", se = FALSE, color = "green", formula = y ~ x) +
  stat_smooth(method = "lm", se = FALSE, color = "blue", formula = y ~ x + I(x ^ 2)) +
  stat_smooth(method = "lm", se = FALSE, color = "red", formula = y ~ x + I(x ^ 2)+ I(x ^ 3)) +
  geom_point(colour = "black", size = 1)

Yeşil renk, bwt’ye karşı weight’i temsil ediyor. Mavi renk, bwt’ye karşı weight ve weight^2 ’yi temsil ediyor. Kırmızı renk, bwt’ye karşı weight, weight^2, weight^3 ’ü temsil ediyor.

Kırmızı ve mavi iyi gibi duruyor. Bu işlemi weight’in dönüştürülmüş hali ile de yapalım.

Öncelikle merkezileştirelim.

mean_weight_ters <- mean(train$weight_ters)
train$weight_ters_merk <- (train$weight_ters - mean_weight_ters)
library(ggplot2)
ggplot(train, aes(x = weight_ters_merk, y =bwt )) +
  stat_smooth(method = "lm", se = FALSE, color = "green", formula = y ~ x) +
  stat_smooth(method = "lm", se = FALSE, color = "blue", formula = y ~ x + I(x ^ 2)) +
  stat_smooth(method = "lm", se = FALSE, color = "red", formula = y ~ x + I(x ^ 2)+ I(x ^ 3)) +
  geom_point(colour = "black", size = 1)

Kırmızı ve mavi oldukça iyi duruyor. Modelleme aşamasında bu durumu gözden geçirip modele ekleyeceğiz.

8.4 Dönüşüm Sonrası İnceleme

Değişkenlerin saçılım matrislerini inceleyelim.

Ham veri ile;

library(PerformanceAnalytics)

orj <- train[,c(4,5,6,1)] 
chart.Correlation(orj, histogram=TRUE, pch=19)

Dönüştülümüş veri ile;

library(PerformanceAnalytics)

orj <- train[,c(8,5,9,1)] 
chart.Correlation(orj, histogram=TRUE, pch=19)

Öncelikle ilişki katsayılarına bakalım. Default olarak Pearson ile ilişki katsayıları verildiği için ve tam olarak simetriklik sağlamadığımız için yorumlamamak en doğrusu olur.

Saçılımlara baktığımızda en büyük değişimin bwt’ye karşı weight değişkeninde olduğunu görürüz. Ham veriye göre oldukça homojen bir dağılıma dönmüştür.

9 Model Geliştirme

bwt bağımlı değişkeni ile en iyi uyumu sağlayan nicel değişken height iken ilişkisiz sayılabilen değişken ise age idi. Ancak kurulacak modellerde ilk önce tüm değişknlere tek tek bakarak ilerleyelim. Nihai sonucu, kurulan modellerde yer alan anlamlılıkları karşılaştırarak bulalım.

Seçenek model 1

fit1 <- lm(bwt ~ gestation + parity + age + height + weight + smoke, data = train)
summary(fit1)
## 
## Call:
## lm(formula = bwt ~ gestation + parity + age + height + weight + 
##     smoke, data = train)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.68397 -0.29562 -0.01541  0.29626  1.43332 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       8.060e-01  3.881e-01   2.077   0.0381 *  
## gestationHealthy  5.507e-01  5.530e-02   9.959  < 2e-16 ***
## gestationLate     7.432e-01  6.898e-02  10.775  < 2e-16 ***
## parityYes        -6.756e-02  3.601e-02  -1.876   0.0610 .  
## age               2.668e-05  2.762e-03   0.010   0.9923    
## height            1.207e-02  2.558e-03   4.720  2.7e-06 ***
## weight            3.675e-03  1.781e-03   2.064   0.0393 *  
## smokeYes         -2.513e-01  2.998e-02  -8.382  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4594 on 982 degrees of freedom
## Multiple R-squared:  0.2019, Adjusted R-squared:  0.1962 
## F-statistic: 35.49 on 7 and 982 DF,  p-value: < 2.2e-16

Intercept’teki p-value < 0.05 ise Intercept anlamlı bir etki gösteriyordur.

Bu model için değerin 0.0270 çıktığını görmekteyiz. Yani bu model anlamlıdır. Ancak tek * olduğu için, diğer modellerde daha anlamlı sonuç çıkma ihtimali de yüksektir.

age değişkeni anlamlı bulunmamıştır. parity ve weight değişkenleri için de azdır. Şimdilik, age ve parity değişkenlerini çıkarıp yeni bir model kuralım.

Seçenek model 2

fit2 <- lm(bwt ~ gestation + height + weight + smoke, data=train)
summary(fit2)
## 
## Call:
## lm(formula = bwt ~ gestation + height + weight + smoke, data = train)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.6617 -0.2916 -0.0040  0.2880  1.4540 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       0.832185   0.381197   2.183   0.0293 *  
## gestationHealthy  0.546456   0.055317   9.879  < 2e-16 ***
## gestationLate     0.734741   0.068919  10.661  < 2e-16 ***
## height            0.011683   0.002553   4.576 5.34e-06 ***
## weight            0.004090   0.001763   2.319   0.0206 *  
## smokeYes         -0.249159   0.029964  -8.315 3.02e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4598 on 984 degrees of freedom
## Multiple R-squared:  0.1986, Adjusted R-squared:  0.1945 
## F-statistic: 48.77 on 5 and 984 DF,  p-value: < 2.2e-16

Intercept’teki p-value = 0.0201 < 0.05 olduğundan Intercept anlamlı bir etki gösteriyordur. Ancak tek * olduğu için, diğer modellerde daha anlamlı sonuç çıkma ihtimali de yüksektir.

Model incelendiğinde weight değişkeninin en az anlamlı değişken olduğu görünmektedir.

YORUM

gestationHealthy için; Diğer değişkenlerin etkileri sabit olmak üzere; sağlıklı sürede doğan bebeklerin erken ve geç doğan bebeklere göre doğum ağırlıkları 0.531463 kg fazladır.

gestationLate için; Diğer değişkenlerin etkileri sabit olmak üzere; geç doğan bebeklerin erken ve sağlıklı sürede doğan bebeklere göre doğum ağırlıkları 0.724341 kg fazladır.

height için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin boylarındaki 1 cm’lik artış, bebeklerin kilolarında yaklaşık 0.011439 kg’lık artışa sebep olur.

weight için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin kilolarındaki 1 kg’lık artış, bebeklerin kilolarında yaklaşık 0.004066 kg’lık artışa sebep olur.

smokeYes için; Diğer değişkenlerin etkileri sabit olmak üzere; sigara içen annelerin bebeklerinin doğum ağırlığı, sigara içmeyen annelerin bebeklerinin doğum ağırlıklarından 0.249061 kg azdır.

Artıklara da bakalım;

library(ggfortify)
autoplot(fit2)

Scale Location’a baktığımızda, yoğunlukları bir kenara bırakırsak dikdörtgene oldukça yakın bir dağılım olduğunu görürüz. 530 ve 1064 numaralı gözlemler biraz uzak durmaktadır.

Residuals vs Fitted kısmında da aynı yorumu yapabiliriz. Dikdörtgen görünümü mevcut. Normal Q-Q grafiğine baktığımızda, dağılımın normale oldukça yakın olduğunu görmekteyiz.

Seçenek model 3

Polinomial modelleme yapalım.

Weight’in kendisini, karesini ve küpünü ekleyelim.

fit3 <- lm(bwt ~ weight_ters_merk + I(weight_ters_merk^2)+I(weight_ters_merk^3) + gestation + height + smoke , data = train)
summary(fit3)
## 
## Call:
## lm(formula = bwt ~ weight_ters_merk + I(weight_ters_merk^2) + 
##     I(weight_ters_merk^3) + gestation + height + smoke, data = train)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.6654 -0.2934 -0.0152  0.2892  1.4694 
## 
## Coefficients:
##                         Estimate Std. Error t value Pr(>|t|)    
## (Intercept)            1.405e+00  4.391e-01   3.200  0.00142 ** 
## weight_ters_merk      -2.363e+01  1.009e+01  -2.341  0.01941 *  
## I(weight_ters_merk^2) -2.283e+03  1.515e+03  -1.507  0.13213    
## I(weight_ters_merk^3)  1.761e+05  3.501e+05   0.503  0.61510    
## gestationHealthy       5.507e-01  5.529e-02   9.960  < 2e-16 ***
## gestationLate          7.365e-01  6.881e-02  10.703  < 2e-16 ***
## height                 9.679e-03  2.692e-03   3.595  0.00034 ***
## smokeYes              -2.462e-01  2.994e-02  -8.222 6.31e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.459 on 982 degrees of freedom
## Multiple R-squared:  0.203,  Adjusted R-squared:  0.1973 
## F-statistic: 35.73 on 7 and 982 DF,  p-value: < 2.2e-16

Intercept’teki p-value = 0.000810 < 0.05 olduğundan Intercept anlamlı bir etki gösteriyordur. Ayrıca 3 tane *** olduğu için,sonuç oldukça iyi görünmektedir..

Model incelendiğinde weight_ters_merk değişkeninin en az anlamlı değişken olduğu görünmektedir.

  • ’lar bir önceki modele benzer. Zaten weight’in karesi ve küpünde anlam yani * olmadığını görmekteyiz. Ancak yine de inceleyelim.

YORUM

weight_ters_merk Diğer değişkenlerin etkileri sabit olmak üzere; annelerin kilolarındaki 1 kg’lık artış, bebeklerin kilolarında yaklaşık 2.440e+01 kg’lık azalışa sebep olur.

weight_ters_merk^2 ve weight_ters_merk^3 değişkenlerinde yıldızlar olmadığı yani anlamlı olmadıkları için yorumlamayalım. Bu durum, annelerin boylarının verildiği weight değişkeninin, ters dönüşümlü halini kullandığımız için de yaşanıyor olabilir.

gestationHealthy için; Diğer değişkenlerin etkileri sabit olmak üzere; sağlıklı sürede doğan bebeklerin erken ve geç doğan bebeklere göre doğum ağırlıkları 5.353e-01 kg fazladır.

gestationLate için; Diğer değişkenlerin etkileri sabit olmak üzere; geç doğan bebeklerin erken ve sağlıklı sürede doğan bebeklere göre doğum ağırlıkları 7.237e-01 kg fazladır.

height için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin boylarındaki 1 cm’lik artış, bebeklerin kilolarında yaklaşık 9.381e-03 kg’lık artışa sebep olur.

smokeYes için; Diğer değişkenlerin etkileri sabit olmak üzere; sigara içen annelerin bebeklerinin doğum ağırlığı, sigara içmeyen annelerin bebeklerinin doğum ağırlıklarından 2.458e-01 kg azdır.

Artıklara da bakalım;

library(ggfortify)
autoplot(fit3)

Seçenek model 4

fit4 <- lm(bwt ~ weight_ters + gestation + height + smoke , data = train)
summary(fit4)
## 
## Call:
## lm(formula = bwt ~ weight_ters + gestation + height + smoke, 
##     data = train)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.65842 -0.28731 -0.00674  0.29071  1.46326 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        1.568551   0.496011   3.162  0.00161 ** 
## weight_ters      -18.340376   6.495538  -2.824  0.00485 ** 
## gestationHealthy   0.548904   0.055264   9.932  < 2e-16 ***
## gestationLate      0.735519   0.068830  10.686  < 2e-16 ***
## height             0.010588   0.002637   4.015 6.40e-05 ***
## smokeYes          -0.247045   0.029948  -8.249 5.08e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4592 on 984 degrees of freedom
## Multiple R-squared:  0.2007, Adjusted R-squared:  0.1966 
## F-statistic: 49.42 on 5 and 984 DF,  p-value: < 2.2e-16

Anlamlı çıktığını rahatlıkla görebiliriz.

Intercept’teki p-value = 0.00105 < 0.05 olduğundan Intercept anlamlı bir etki gösteriyordur.

Model incelendiğinde weight_ters değişkeninin en az anlamlı değişken olduğu görünmektedir. Ancak ** ile en az anlamlı değişkenin bile anlamı oldukça iyidir.

YORUM

weight_ters için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin kilolarındaki 1 kg’lık artış, bebeklerin kilolarında yaklaşık 18.463429 kg’lık azalışa sebep olur.

Bu durum 6.524609’luk standart sapma verse de, doğası gereği mümkün olamaz. Bu durum test aşamasında gözden geçirilecektir.

gestationHealthy için; Diğer değişkenlerin etkileri sabit olmak üzere; sağlıklı sürede doğan bebeklerin erken ve geç doğan bebeklere göre doğum ağırlıkları 0.533971 kg fazladır.

gestationLate için; Diğer değişkenlerin etkileri sabit olmak üzere; geç doğan bebeklerin erken ve sağlıklı sürede doğan bebeklere göre doğum ağırlıkları 0.724795 kg fazladır.

height için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin boylarındaki 1 cm’lik artış, bebeklerin kilolarında yaklaşık 0.010326 kg’lık artışa sebep olur.

smokeYes için; Diğer değişkenlerin etkileri sabit olmak üzere; sigara içen annelerin bebeklerinin doğum ağırlığı, sigara içmeyen annelerin bebeklerinin doğum ağırlıklarından 0.246880 kg azdır.

Artıklara da bakalım;

library(ggfortify)
autoplot(fit4)

Seçenek model 5

height değişkeni, bwt değişken ile en ilişkili değişkendi. Bu sebeple height ile bir model kuralım.

fit5 <- lm(bwt ~ height, data = train)
summary(fit5)
## 
## Call:
## lm(formula = bwt ~ height, data = train)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.87191 -0.30172  0.01659  0.32198  1.65891 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 0.877096   0.404773   2.167   0.0305 *  
## height      0.015470   0.002487   6.219 7.37e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5029 on 988 degrees of freedom
## Multiple R-squared:  0.03767,    Adjusted R-squared:  0.0367 
## F-statistic: 38.68 on 1 and 988 DF,  p-value: 7.369e-10

Anlamlı çıktığını görebiliriz.

Intercept’teki p-value = 0.0228 < 0.05 olduğundan Intercept anlamlı bir etki gösteriyordur.

YORUM

height için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin boylarındaki 1 cm’lik artış, bebeklerin kilolarında yaklaşık 0.015202 kg’lık artışa sebep olur.

Artıklara da bakalım;

library(ggfortify)
autoplot(fit5)

Scale Location’a baktığımızda, yoğunlukları bir kenara bırakırsak dikdörtgene oldukça yakın bir dağılım olduğunu görürüz. 913, 979 ve 1036 numaralı gözlemler biraz uzak durmaktadır.

Residuals vs Fitted kısmında da aynı yorumu yapabiliriz. Dikdörtgen görünümü mevcut. Normal Q-Q grafiğine baktığımızda, dağılımın normale oldukça yakın olduğunu görmekteyiz.

Seçenek model 6

Dönüşüm uygulamasından sonra gestation değişkeni ile bir aykırı değer incelemesi yapmıştık.

Potansiyel aykırı değerler; 240, 410, 557, 633, 739, 748, 815, 873, 1100, 310, 530, 1064, 1149, 1150 olarak bulunmuştu.

Artık incelemelerinde 530 ve 1064. gözlemlerin eşleştiğini görmekteyiz. O halde bu gözlemleri çıkararak model kuralım.

newTrain <- subset(train, !(row.names(train) %in% c(530, 1064)))
fit6 <- lm(bwt ~ gestation + height + weight + smoke, data = newTrain)
summary(fit6)
## 
## Call:
## lm(formula = bwt ~ gestation + height + weight + smoke, data = newTrain)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.46335 -0.29185 -0.00775  0.28555  1.44925 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       0.734500   0.377710   1.945   0.0521 .  
## gestationHealthy  0.550167   0.054701  10.058  < 2e-16 ***
## gestationLate     0.734022   0.068145  10.771  < 2e-16 ***
## height            0.012305   0.002530   4.864 1.34e-06 ***
## weight            0.004071   0.001744   2.334   0.0198 *  
## smokeYes         -0.254695   0.029649  -8.590  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4547 on 982 degrees of freedom
## Multiple R-squared:  0.2069, Adjusted R-squared:  0.2029 
## F-statistic: 51.24 on 5 and 982 DF,  p-value: < 2.2e-16

Intercept’teki p-value = 0.0368 < 0.05 olduğundan Intercept anlamlı bir etki gösteriyordur.

Model incelendiğinde weight değişkeninin en az anlamlı değişken olduğu görünmektedir.

YORUM

gestationHealthy için; Diğer değişkenlerin etkileri sabit olmak üzere; sağlıklı sürede doğan bebeklerin erken ve geç doğan bebeklere göre doğum ağırlıkları 0.535106 kg fazladır.

gestationLate için; Diğer değişkenlerin etkileri sabit olmak üzere; geç doğan bebeklerin erken ve sağlıklı sürede doğan bebeklere göre doğum ağırlıkları 0.723526 kg fazladır.

height için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin boylarındaki 1 cm’lik artış, bebeklerin kilolarında yaklaşık 0.012062 kg’lık artışa sebep olur.

weight için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin kilolarındaki 1 kg’lık artış, bebeklerin kilolarında yaklaşık 0.004048 kg’lık artışa sebep olur.

smokeYes için; Diğer değişkenlerin etkileri sabit olmak üzere; sigara içen annelerin bebeklerinin doğum ağırlığı, sigara içmeyen annelerin bebeklerinin doğum ağırlıklarından 0.254613 kg azdır.

Artıklara da bakalım;

library(ggfortify)
autoplot(fit6)

Seçenek model 7

fit7 <- lm(bwt ~ height + weight , data = train)
summary(fit7)
## 
## Call:
## lm(formula = bwt ~ height + weight, data = train)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.88990 -0.30125  0.01809  0.31073  1.58429 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 1.117384   0.414141   2.698  0.00709 ** 
## height      0.012237   0.002777   4.407 1.16e-05 ***
## weight      0.004943   0.001909   2.589  0.00976 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5014 on 987 degrees of freedom
## Multiple R-squared:  0.04417,    Adjusted R-squared:  0.04223 
## F-statistic:  22.8 on 2 and 987 DF,  p-value: 2.084e-10

Intercept’teki p-value = 0.00572 < 0.05 olduğundan Intercept anlamlı bir etki gösteriyordur.

YORUM

height için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin boylarındaki 1 cm’lik artış, bebeklerin kilolarında yaklaşık 0.012159 kg’lık artışa sebep olur.

weight için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin kilolarındaki 1 kg’lık artış, bebeklerin kilolarında yaklaşık 0.004707 kg’lık artışa sebep olur.

Artıklara da bakalım;

library(ggfortify)
autoplot(fit7)

Seçenek model 8

fit8 <- lm(bwt ~ gestation + weight, data = train)
summary(fit8)
## 
## Call:
## lm(formula = bwt ~ gestation + weight, data = train)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.65863 -0.32612 -0.00326  0.29749  1.56451 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      2.352092   0.110443  21.297  < 2e-16 ***
## gestationHealthy 0.548198   0.057540   9.527  < 2e-16 ***
## gestationLate    0.744800   0.071754  10.380  < 2e-16 ***
## weight           0.008884   0.001632   5.442 6.63e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4792 on 986 degrees of freedom
## Multiple R-squared:  0.1278, Adjusted R-squared:  0.1251 
## F-statistic: 48.15 on 3 and 986 DF,  p-value: < 2.2e-16

Intercept’teki p-value = 2e-16 < 0.05 olduğundan Intercept anlamlı bir etki gösteriyordur.

YORUM

gestationHealthy için; Diğer değişkenlerin etkileri sabit olmak üzere; sağlıklı sürede doğan bebeklerin erken ve geç doğan bebeklere göre doğum ağırlıkları 0.534458 kg fazladır.

gestationLate için; Diğer değişkenlerin etkileri sabit olmak üzere; geç doğan bebeklerin erken ve sağlıklı sürede doğan bebeklere göre doğum ağırlıkları 0.738442 kg fazladır.

weight için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin kilolarındaki 1 kg’lık artış, bebeklerin kilolarında yaklaşık 0.008743 kg’lık artışa sebep olur.

Seçenek model 9

fit9 <- lm(bwt ~ gestation + smoke, data = train)
summary(fit9)
## 
## Call:
## lm(formula = bwt ~ gestation + smoke, data = train)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.50362 -0.32440 -0.00107  0.28374  1.47313 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       2.96453    0.05496  53.936   <2e-16 ***
## gestationHealthy  0.55193    0.05640   9.786   <2e-16 ***
## gestationLate     0.75112    0.07034  10.678   <2e-16 ***
## smokeYes         -0.25646    0.03046  -8.419   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4698 on 986 degrees of freedom
## Multiple R-squared:  0.1618, Adjusted R-squared:  0.1593 
## F-statistic: 63.45 on 3 and 986 DF,  p-value: < 2.2e-16

Intercept’teki p-value = 2e-16 < 0.05 olduğundan Intercept anlamlı bir etki gösteriyordur.

YORUM

gestationHealthy için; Diğer değişkenlerin etkileri sabit olmak üzere; sağlıklı sürede doğan bebeklerin erken ve geç doğan bebeklere göre doğum ağırlıkları 0.53716 kg fazladır.

gestationLate için; Diğer değişkenlerin etkileri sabit olmak üzere; geç doğan bebeklerin erken ve sağlıklı sürede doğan bebeklere göre doğum ağırlıkları 0.73980 kg fazladır.

smokeYes için; Diğer değişkenlerin etkileri sabit olmak üzere; sigara içen annelerin bebeklerinin doğum ağırlığı, sigara içmeyen annelerin bebeklerinin doğum ağırlıklarından 0.25567 kg azdır.

10 Geçerlilik

Öncelikle test veri setini aktif edelim ve train veri setine yaptığımız işlemleri test için de yapalım. Ardından, train veri kümesi için oluşturulan anlamlı modellerin hatalaraını test veri kümesi için de bulup karşılaştırma yapacağız.

library(readxl)
test <- read_excel("train.xlsx")

gestation değişkenini kategorik değişken yapalım.

test$gestation <- factor(ifelse(test$gestation < 259, "Early", 
                                      ifelse(test$gestation >= 259 & test$gestation <= 294, "Healthy",
                                      ifelse(test$gestation > 294, "Late", NA))), 
                                      levels = c("Healthy", "Late", "Early"),
                                      labels = c("Healthy", "Late", "Early"))

categories <- c("Early", "Healthy", "Late")
test$gestation <- factor(test$gestation, levels = categories)

Dönüşümleri uygulayalım.

test$age_terskok <- 1/(sqrt(test$age))
test$weight_ters <- 1/(test$weight)

Oluşturulan modellerden fit2, fit4 fit5, fit6, fit7, fit8, ve fit9 modellerini seçelim.

Öncelikle train veri seti için hataları bulalım.

fit2_res <- as.data.frame(t(defaultSummary(data.frame(obs=train$bwt, pred=predict(fit2,train)))))
rownames(fit2_res) <- "fit2"

fit4_res <- as.data.frame(t(defaultSummary(data.frame(obs=train$bwt, pred=predict(fit4,train)))))
rownames(fit4_res) <- "fit4"

fit5_res <- as.data.frame(t(defaultSummary(data.frame(obs=train$bwt, pred=predict(fit5,train)))))
rownames(fit5_res) <- "fit5"

fit6_res <- as.data.frame(t(defaultSummary(data.frame(obs=newTrain$bwt, pred=predict(fit6,newTrain)))))
rownames(fit6_res) <- "fit6"

fit7_res <- as.data.frame(t(defaultSummary(data.frame(obs=train$bwt, pred=predict(fit7,train)))))
rownames(fit7_res) <- "fit7"

fit8_res <- as.data.frame(t(defaultSummary(data.frame(obs=train$bwt, pred=predict(fit8,train)))))
rownames(fit8_res) <- "fit8"

fit9_res <- as.data.frame(t(defaultSummary(data.frame(obs=train$bwt, pred=predict(fit9,train)))))
rownames(fit9_res) <- "fit9"

Test için hatalar;

fit2_test_res <- as.data.frame(t(defaultSummary(data.frame(obs=test$bwt, pred=predict(fit2,test)))))
rownames(fit2_test_res) <- "fit2"

fit4_test_res <- as.data.frame(t(defaultSummary(data.frame(obs=test$bwt, pred=predict(fit4,test)))))
rownames(fit4_test_res) <- "fit4"

fit5_test_res <- as.data.frame(t(defaultSummary(data.frame(obs=test$bwt, pred=predict(fit5,test)))))
rownames(fit5_test_res) <- "fit5"

newTest <- subset(test, !(row.names(test) %in% c(530, 1064)))

fit6_test_res <- as.data.frame(t(defaultSummary(data.frame(obs=newTest$bwt, pred=predict(fit6,newTest)))))
rownames(fit6_test_res) <- "fit6"

fit7_test_res <- as.data.frame(t(defaultSummary(data.frame(obs=test$bwt, pred=predict(fit7,test)))))
rownames(fit7_test_res) <- "fit7"

fit8_test_res <- as.data.frame(t(defaultSummary(data.frame(obs=test$bwt, pred=predict(fit8,test)))))
rownames(fit8_test_res) <- "fit8"

fit9_test_res <- as.data.frame(t(defaultSummary(data.frame(obs=test$bwt, pred=predict(fit9,test)))))
rownames(fit9_test_res) <- "fit9"

Train sonuçları;

round(rbind(fit2_res, fit5_res, fit6_res, fit7_res, fit8_res ,fit9_res),3)
##       RMSE Rsquared   MAE
## fit2 0.458    0.199 0.359
## fit5 0.502    0.038 0.389
## fit6 0.453    0.207 0.357
## fit7 0.501    0.044 0.388
## fit8 0.478    0.128 0.377
## fit9 0.469    0.162 0.370

Test sonuçları;

round(rbind(fit2_test_res, fit5_test_res, fit6_test_res, fit7_test_res, fit8_test_res ,fit9_test_res),3)
##       RMSE Rsquared   MAE
## fit2 0.458    0.199 0.359
## fit5 0.502    0.038 0.389
## fit6 0.458    0.199 0.359
## fit7 0.501    0.044 0.388
## fit8 0.478    0.128 0.377
## fit9 0.469    0.162 0.370

Kontrol ettiğimizde, tüm modeller için train ve test setlerde RMSE (root mean square) ve MAE (mean absolute error) değerleri birbirlerine çok yakın, hatta bazılarında eşittir.

Bu sebeple bu değerlerden en küçük olanını, en iyi model olarak seçebiliriz.

Train Set için; Min RMSE; fit6 Max Rsquared : fit6 Min MAE : fit6

Test Set için; Min RMSE : fit2 = fit6 Max Rsquared : fit6 Min MAE : fit2 = fit6

Train ve Test set üzeri yapılan karşılaştırmada minimum hata ve maksimum R^2 sağlayan modelin fit6 modeli olduğu bulunmuştur.

fit6 modeli; bwt değişkeni için yapılacak tahminde gestation, height, weight ve smoke değişkenlerini içermekle birlikte tespit edilen aykırı/uç değerlerden bir miktar arındırılarak oluşturulmuş bir modeldir.